home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1991-04-23 | 22.6 KB | [TEXT/dumv] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: ft.c
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [dumv] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 04 66 74 2e 63 00 00 | 00 00 00 00 00 00 00 00 |..ft.c..|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 64 75 6d | 76 00 00 00 00 00 00 00 |.TEXTdum|v.......|
|00000050| 00 00 00 00 00 57 b1 00 | 00 01 9e a4 3a 24 72 a4 |.....W..|....:$r.|
|00000060| 3a 24 72 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |:$r.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 79 1c 00 00 |........|....y...|
|00000080| 2f 2a 0d 20 2a 20 43 4f | 50 59 52 49 47 48 54 20 |/*. * CO|PYRIGHT |
|00000090| 31 39 38 37 20 43 4f 52 | 4e 45 4c 4c 20 55 4e 49 |1987 COR|NELL UNI|
|000000a0| 56 45 52 53 49 54 59 3b | 20 41 6c 6c 20 52 69 67 |VERSITY;| All Rig|
|000000b0| 68 74 73 20 52 65 73 65 | 72 76 65 64 0d 20 2a 20 |hts Rese|rved. * |
|000000c0| 20 50 6c 65 61 73 65 20 | 73 65 65 20 64 65 74 61 | Please |see deta|
|000000d0| 69 6c 65 64 20 63 6f 70 | 79 72 69 67 68 74 73 20 |iled cop|yrights |
|000000e0| 61 6e 64 20 64 69 73 63 | 6c 61 69 6d 65 72 73 20 |and disc|laimers |
|000000f0| 69 6e 20 22 6e 6f 74 69 | 63 65 2e 68 22 0d 20 2a |in "noti|ce.h". *|
|00000100| 2f 0d 23 69 6e 63 6c 75 | 64 65 20 3c 6e 6f 74 69 |/.#inclu|de <noti|
|00000110| 63 65 2e 68 3e 0d 0d 2f | 2a 20 38 2f 31 34 2f 38 |ce.h>../|* 8/14/8|
|00000120| 37 20 6b 65 76 69 6e 20 | 66 69 78 65 64 20 50 65 |7 kevin |fixed Pe|
|00000130| 74 65 72 27 73 20 6e 65 | 77 20 64 6f 77 6e 6c 6f |ter's ne|w downlo|
|00000140| 61 64 20 63 6f 64 65 20 | 74 6f 20 77 6f 72 6b 20 |ad code |to work |
|00000150| 6f 6e 20 74 68 65 20 4d | 61 63 20 2a 2f 0d 0d 2f |on the M|ac */../|
|00000160| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0d 2a 2a 2a 2a |********|***.****|
|000001b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000001c0| 20 20 20 20 20 20 20 33 | 32 37 30 20 46 69 6c 65 | 3|270 File|
|000001d0| 20 54 72 61 6e 73 66 65 | 72 20 20 20 20 20 20 20 | Transfe|r |
|000001e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000001f0| 20 20 20 20 2a 2a 2a 2a | 0d 2a 2a 2a 2a 20 20 20 | ****|.**** |
|00000200| 20 20 20 20 20 20 20 77 | 72 69 74 74 65 6e 20 62 | w|ritten b|
|00000210| 79 20 50 65 74 65 72 20 | 48 6f 79 74 2c 20 43 6f |y Peter |Hoyt, Co|
|00000220| 72 6e 65 6c 6c 20 43 6f | 6d 70 75 74 65 72 20 53 |rnell Co|mputer S|
|00000230| 65 72 76 69 63 65 73 20 | 20 20 20 20 20 20 20 20 |ervices | |
|00000240| 20 2a 2a 2a 2a 0d 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | ****.**|********|
|00000250| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000260| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000270| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000280| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000290| 2a 2f 0d 0d 23 69 6e 63 | 6c 75 64 65 20 3c 65 6d |*/..#inc|lude <em|
|000002a0| 2e 68 3e 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 33 |.h>..#in|clude <3|
|000002b0| 32 37 30 2e 68 3e 0d 23 | 69 6e 63 6c 75 64 65 20 |270.h>.#|include |
|000002c0| 3c 68 31 39 2e 68 3e 0d | 0d 0d 75 6e 73 69 67 6e |<h19.h>.|..unsign|
|000002d0| 65 64 20 63 68 61 72 20 | 66 74 5f 74 61 62 6c 65 |ed char |ft_table|
|000002e0| 5b 5d 20 3d 20 7b 30 78 | 30 32 2c 30 78 30 37 2c |[] = {0x|02,0x07,|
|000002f0| 30 78 30 64 2c 30 78 31 | 31 2c 30 78 31 33 2c 30 |0x0d,0x1|1,0x13,0|
|00000300| 78 37 66 2c 30 78 66 66 | 7d 3b 0d 75 6e 73 69 67 |x7f,0xff|};.unsig|
|00000310| 6e 65 64 20 63 68 61 72 | 20 66 74 5f 69 6e 70 75 |ned char| ft_inpu|
|00000320| 74 5f 74 61 62 6c 65 5b | 5d 20 3d 20 7b 30 78 30 |t_table[|] = {0x0|
|00000330| 32 2c 30 78 31 31 2c 30 | 78 31 33 2c 30 78 37 66 |2,0x11,0|x13,0x7f|
|00000340| 2c 30 78 66 66 7d 3b 0d | 0d 2f 2a 20 54 68 69 73 |,0xff};.|./* This|
|00000350| 20 72 6f 75 74 69 6e 65 | 20 61 73 73 65 6d 62 6c | routine| assembl|
|00000360| 65 73 20 69 6e 63 6f 6d | 69 6e 67 20 62 79 74 65 |es incom|ing byte|
|00000370| 73 20 66 72 6f 6d 20 63 | 31 39 2e 20 2a 2f 0d 0d |s from c|19. */..|
|00000380| 23 69 66 64 65 66 20 41 | 4e 54 49 51 55 45 0d 2f |#ifdef A|NTIQUE./|
|00000390| 2a 20 66 74 63 31 39 20 | 70 61 63 6b 65 74 20 73 |* ftc19 |packet s|
|000003a0| 74 72 75 63 74 75 72 65 | 20 75 73 65 64 20 66 6f |tructure| used fo|
|000003b0| 72 20 75 70 6c 6f 61 64 | 20 26 20 64 6f 77 6e 6c |r upload| & downl|
|000003c0| 6f 61 64 20 2a 2f 0d 0d | 73 74 72 75 63 74 20 66 |oad */..|struct f|
|000003d0| 74 63 31 39 5f 70 6b 74 | 20 7b 0d 09 75 6e 73 69 |tc19_pkt| {..unsi|
|000003e0| 67 6e 65 64 20 70 6b 74 | 5f 6c 65 6e 3b 20 20 20 |gned pkt|_len; |
|000003f0| 20 20 20 20 20 20 2f 2a | 20 74 6f 74 61 6c 20 6e | /*| total n|
|00000400| 75 6d 62 65 72 20 6f 66 | 20 62 79 74 65 73 20 74 |umber of| bytes t|
|00000410| 6f 20 62 65 20 75 70 6c | 6f 61 64 65 64 20 2a 2f |o be upl|oaded */|
|00000420| 0d 09 75 6e 73 69 67 6e | 65 64 20 6c 65 6e 3b 20 |..unsign|ed len; |
|00000430| 20 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 6c | | /* l|
|00000440| 65 6e 67 74 68 20 6f 66 | 20 64 6f 77 6e 6c 6f 61 |ength of| downloa|
|00000450| 64 65 64 20 64 61 74 61 | 20 2a 2f 0d 09 75 6e 73 |ded data| */..uns|
|00000460| 69 67 6e 65 64 20 63 68 | 6b 3b 20 20 20 20 20 20 |igned ch|k; |
|00000470| 20 20 20 20 20 20 20 2f | 2a 20 63 68 6b 73 75 6d | /|* chksum|
|00000480| 20 6f 66 20 64 6f 77 6e | 6c 6f 61 64 65 64 20 2a | of down|loaded *|
|00000490| 2f 0d 09 63 68 61 72 20 | 6c 62 75 66 66 5b 34 5d |/..char |lbuff[4]|
|000004a0| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 |; | /* |
|000004b0| 6c 65 6e 67 74 68 20 63 | 68 61 72 61 63 74 65 72 |length c|haracter|
|000004c0| 73 20 78 6d 69 74 74 65 | 64 20 2a 2f 0d 09 63 68 |s xmitte|d */..ch|
|000004d0| 61 72 20 63 62 75 66 66 | 5b 34 5d 3b 20 20 20 20 |ar cbuff|[4]; |
|000004e0| 20 20 20 20 20 20 20 20 | 2f 2a 20 63 68 6b 73 75 | |/* chksu|
|000004f0| 6d 20 63 68 61 72 61 63 | 74 65 72 73 20 78 6d 69 |m charac|ters xmi|
|00000500| 74 74 65 64 20 2a 2f 0d | 09 63 68 61 72 20 64 61 |tted */.|.char da|
|00000510| 74 61 5b 36 30 30 5d 3b | 20 20 20 20 20 20 20 20 |ta[600];| |
|00000520| 20 20 20 2f 2a 20 78 66 | 65 72 20 64 61 74 61 20 | /* xf|er data |
|00000530| 62 75 66 66 65 72 20 2a | 2f 0d 7d 20 66 74 70 6b |buffer *|/.} ftpk|
|00000540| 74 2c 20 75 70 70 6b 74 | 3b 0d 0d 23 65 6e 64 69 |t, uppkt|;..#endi|
|00000550| 66 0d 0d 2f 2a 20 50 41 | 47 45 20 2a 2f 0d 0d 63 |f../* PA|GE */..c|
|00000560| 66 74 28 64 61 74 61 29 | 20 20 20 20 20 20 20 20 |ft(data)| |
|00000570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000580| 2f 2a 20 68 61 6e 64 6c | 65 73 20 76 65 72 73 69 |/* handl|es versi|
|00000590| 6f 6e 20 6e 75 6d 62 65 | 72 20 2a 2f 0d 63 68 61 |on numbe|r */.cha|
|000005a0| 72 20 64 61 74 61 3b 0d | 7b 0d 09 65 6d 64 70 2d |r data;.|{..emdp-|
|000005b0| 3e 63 66 74 5f 63 6f 75 | 6e 74 20 3d 20 65 6d 64 |>cft_cou|nt = emd|
|000005c0| 70 2d 3e 69 6e 70 75 74 | 5f 63 6e 74 20 3d 20 65 |p->input|_cnt = e|
|000005d0| 6d 64 70 2d 3e 69 6e 70 | 75 74 5f 73 74 61 74 65 |mdp->inp|ut_state|
|000005e0| 20 3d 20 30 3b 0d 09 65 | 6d 64 70 2d 3e 65 76 65 | = 0;..e|mdp->eve|
|000005f0| 6e 74 5f 72 65 67 20 7c | 3d 20 54 46 54 50 5f 4f |nt_reg ||= TFTP_O|
|00000600| 4e 3b 0d 09 28 2a 65 6d | 64 70 2d 3e 70 75 74 63 |N;..(*em|dp->putc|
|00000610| 68 61 72 29 28 28 63 68 | 61 72 29 20 30 78 66 64 |har)((ch|ar) 0xfd|
|00000620| 29 3b 0d 09 28 2a 65 6d | 64 70 2d 3e 70 75 74 63 |);..(*em|dp->putc|
|00000630| 68 61 72 29 28 28 63 68 | 61 72 29 20 66 74 69 6e |har)((ch|ar) ftin|
|00000640| 69 74 20 28 28 69 6e 74 | 29 20 64 61 74 61 2c 20 |it ((int|) data, |
|00000650| 65 6d 64 70 2d 3e 69 62 | 6d 5f 6d 6f 64 65 20 3f |emdp->ib|m_mode ?|
|00000660| 20 46 41 4c 53 45 20 3a | 20 54 52 55 45 29 29 3b | FALSE :| TRUE));|
|00000670| 0d 09 28 2a 65 6d 64 70 | 2d 3e 70 75 74 63 68 61 |..(*emdp|->putcha|
|00000680| 72 29 28 28 63 68 61 72 | 29 20 30 78 30 64 29 3b |r)((char|) 0x0d);|
|00000690| 0d 09 6d 6f 64 65 20 3d | 20 76 74 6d 6f 64 65 20 |..mode =| vtmode |
|000006a0| 3d 20 43 46 54 32 4d 4f | 44 45 3b 0d 7d 0d 0d 63 |= CFT2MO|DE;.}..c|
|000006b0| 66 74 32 28 29 20 0d 7b | 20 20 20 20 20 20 20 20 |ft2() .{| |
|000006c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000006d0| 20 20 0d 09 2f 2a 20 65 | 61 74 20 74 68 65 20 6e | ../* e|at the n|
|000006e0| 65 78 74 20 37 30 20 63 | 68 61 72 61 63 74 65 72 |ext 70 c|haracter|
|000006f0| 73 20 2a 2f 0d 09 69 66 | 20 28 2b 2b 65 6d 64 70 |s */..if| (++emdp|
|00000700| 2d 3e 63 66 74 5f 63 6f | 75 6e 74 20 3d 3d 20 37 |->cft_co|unt == 7|
|00000710| 30 29 0d 09 09 6d 6f 64 | 65 20 3d 20 76 74 6d 6f |0)...mod|e = vtmo|
|00000720| 64 65 20 3d 20 43 31 39 | 46 54 4d 4f 44 45 3b 0d |de = C19|FTMODE;.|
|00000730| 7d 0d 09 0d 2f 2a 20 54 | 68 69 73 20 72 6f 75 74 |}.../* T|his rout|
|00000740| 69 6e 65 20 64 65 61 6c | 73 20 77 69 74 68 20 69 |ine deal|s with i|
|00000750| 6e 63 6f 6d 6d 69 6e 67 | 20 66 69 6c 65 20 74 72 |ncomming| file tr|
|00000760| 61 6e 73 66 65 72 20 64 | 61 74 61 3a 0d 20 2a 20 |ansfer d|ata:. * |
|00000770| 20 20 54 68 65 20 69 6e | 63 6f 6d 6d 69 6e 67 20 | The in|comming |
|00000780| 62 79 74 65 73 20 61 72 | 65 20 61 73 73 65 6d 62 |bytes ar|e assemb|
|00000790| 6c 65 64 20 69 6e 74 6f | 20 61 6e 20 66 74 63 31 |led into| an ftc1|
|000007a0| 39 20 70 61 63 6b 65 74 | 2e 0d 20 2a 20 20 20 49 |9 packet|.. * I|
|000007b0| 74 20 69 73 20 63 68 65 | 63 6b 65 64 20 66 6f 72 |t is che|cked for|
|000007c0| 20 6c 65 6e 67 74 68 2c | 20 74 68 65 6e 20 67 65 | length,| then ge|
|000007d0| 74 73 20 65 73 63 61 70 | 65 20 73 65 71 75 65 6e |ts escap|e sequen|
|000007e0| 63 65 73 20 72 65 73 6f | 6c 76 65 64 2c 0d 20 2a |ces reso|lved,. *|
|000007f0| 20 20 20 61 6e 64 20 74 | 68 65 6e 20 67 65 74 73 | and t|hen gets|
|00000800| 20 69 74 73 20 63 68 6b | 73 75 6d 20 76 65 72 69 | its chk|sum veri|
|00000810| 66 69 65 64 2e 20 46 69 | 6e 61 6c 6c 79 20 69 74 |fied. Fi|nally it|
|00000820| 73 20 37 20 62 69 74 20 | 64 61 74 61 20 69 73 20 |s 7 bit |data is |
|00000830| 65 78 70 61 6e 64 65 64 | 0d 20 2a 20 20 20 69 6e |expanded|. * in|
|00000840| 74 6f 20 38 20 62 69 74 | 73 20 61 6e 64 20 74 68 |to 8 bit|s and th|
|00000850| 65 20 66 69 6c 65 20 74 | 72 61 6e 73 66 65 72 20 |e file t|ransfer |
|00000860| 72 6f 75 74 69 6e 65 20 | 66 74 33 32 37 30 28 29 |routine |ft3270()|
|00000870| 20 69 73 20 63 61 6c 6c | 65 64 2e 0d 20 2a 2f 0d | is call|ed.. */.|
|00000880| 09 0d 63 31 39 66 74 28 | 64 61 74 61 29 0d 63 68 |..c19ft(|data).ch|
|00000890| 61 72 20 64 61 74 61 3b | 0d 7b 0d 09 69 6e 74 20 |ar data;|.{..int |
|000008a0| 69 3b 0d 09 73 77 69 74 | 63 68 20 28 65 6d 64 70 |i;..swit|ch (emdp|
|000008b0| 2d 3e 69 6e 70 75 74 5f | 73 74 61 74 65 29 20 7b |->input_|state) {|
|000008c0| 0d 09 09 63 61 73 65 20 | 30 3a 09 09 09 09 09 09 |...case |0:......|
|000008d0| 09 09 20 2f 2a 20 61 73 | 73 65 6d 62 6c 69 6e 67 |.. /* as|sembling|
|000008e0| 20 74 68 65 20 6c 65 6e | 67 74 68 20 6f 66 20 70 | the len|gth of p|
|000008f0| 61 63 6b 65 74 20 2a 2f | 0d 09 09 09 65 6d 64 70 |acket */|....emdp|
|00000900| 2d 3e 72 63 76 5f 70 6b | 74 2e 6c 62 75 66 66 5b |->rcv_pk|t.lbuff[|
|00000910| 65 6d 64 70 2d 3e 69 6e | 70 75 74 5f 63 6e 74 5d |emdp->in|put_cnt]|
|00000920| 20 3d 20 64 61 74 61 3b | 0d 09 09 09 69 66 20 28 | = data;|....if (|
|00000930| 65 6d 64 70 2d 3e 69 6e | 70 75 74 5f 63 6e 74 20 |emdp->in|put_cnt |
|00000940| 3d 3d 20 33 29 20 7b 0d | 09 09 09 09 66 6f 72 20 |== 3) {.|....for |
|00000950| 28 65 6d 64 70 2d 3e 72 | 63 76 5f 70 6b 74 2e 6c |(emdp->r|cv_pkt.l|
|00000960| 65 6e 20 3d 20 30 2c 20 | 69 20 3d 20 30 3b 20 69 |en = 0, |i = 0; i|
|00000970| 20 3c 20 34 3b 20 2b 2b | 69 29 0d 09 09 09 09 09 | < 4; ++|i)......|
|00000980| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 6c 65 |emdp->rc|v_pkt.le|
|00000990| 6e 20 3d 20 28 65 6d 64 | 70 2d 3e 72 63 76 5f 70 |n = (emd|p->rcv_p|
|000009a0| 6b 74 2e 6c 65 6e 20 3c | 3c 20 34 29 20 2b 20 28 |kt.len <|< 4) + (|
|000009b0| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 6c 62 |emdp->rc|v_pkt.lb|
|000009c0| 75 66 66 5b 69 5d 20 26 | 20 30 78 30 66 29 3b 0d |uff[i] &| 0x0f);.|
|000009d0| 09 09 09 09 65 6d 64 70 | 2d 3e 69 6e 70 75 74 5f |....emdp|->input_|
|000009e0| 73 74 61 74 65 20 3d 20 | 31 3b 0d 09 09 09 7d 0d |state = |1;....}.|
|000009f0| 09 09 09 65 6d 64 70 2d | 3e 69 6e 70 75 74 5f 63 |...emdp-|>input_c|
|00000a00| 6e 74 20 3d 20 2b 2b 65 | 6d 64 70 2d 3e 69 6e 70 |nt = ++e|mdp->inp|
|00000a10| 75 74 5f 63 6e 74 20 26 | 20 33 3b 09 2f 2a 20 72 |ut_cnt &| 3;./* r|
|00000a20| 65 73 65 74 73 20 74 6f | 20 30 20 6f 6e 20 77 61 |esets to| 0 on wa|
|00000a30| 79 20 6f 75 74 20 2a 2f | 0d 09 09 09 62 72 65 61 |y out */|....brea|
|00000a40| 6b 3b 0d 09 09 63 61 73 | 65 20 31 3a 09 09 09 09 |k;...cas|e 1:....|
|00000a50| 09 09 09 09 20 2f 2a 20 | 61 73 73 65 6d 62 6c 69 |.... /* |assembli|
|00000a60| 6e 67 20 74 68 65 20 63 | 68 6b 73 75 6d 20 2a 2f |ng the c|hksum */|
|00000a70| 0d 09 09 09 65 6d 64 70 | 2d 3e 72 63 76 5f 70 6b |....emdp|->rcv_pk|
|00000a80| 74 2e 63 62 75 66 66 5b | 65 6d 64 70 2d 3e 69 6e |t.cbuff[|emdp->in|
|00000a90| 70 75 74 5f 63 6e 74 5d | 20 3d 20 64 61 74 61 3b |put_cnt]| = data;|
|00000aa0| 0d 09 09 09 69 66 20 28 | 65 6d 64 70 2d 3e 69 6e |....if (|emdp->in|
|00000ab0| 70 75 74 5f 63 6e 74 20 | 3d 3d 20 33 29 20 7b 0d |put_cnt |== 3) {.|
|00000ac0| 09 09 09 09 66 6f 72 20 | 28 65 6d 64 70 2d 3e 72 |....for |(emdp->r|
|00000ad0| 63 76 5f 70 6b 74 2e 63 | 68 6b 20 3d 20 30 2c 20 |cv_pkt.c|hk = 0, |
|00000ae0| 69 20 3d 20 30 3b 20 69 | 20 3c 20 34 3b 20 2b 2b |i = 0; i| < 4; ++|
|00000af0| 69 29 0d 09 09 09 09 09 | 65 6d 64 70 2d 3e 72 63 |i)......|emdp->rc|
|00000b00| 76 5f 70 6b 74 2e 63 68 | 6b 20 3d 20 28 65 6d 64 |v_pkt.ch|k = (emd|
|00000b10| 70 2d 3e 72 63 76 5f 70 | 6b 74 2e 63 68 6b 20 3c |p->rcv_p|kt.chk <|
|00000b20| 3c 20 34 29 20 2b 20 28 | 65 6d 64 70 2d 3e 72 63 |< 4) + (|emdp->rc|
|00000b30| 76 5f 70 6b 74 2e 63 62 | 75 66 66 5b 69 5d 20 26 |v_pkt.cb|uff[i] &|
|00000b40| 20 30 78 30 66 29 3b 0d | 09 09 09 09 65 6d 64 70 | 0x0f);.|....emdp|
|00000b50| 2d 3e 69 6e 70 75 74 5f | 73 74 61 74 65 20 3d 20 |->input_|state = |
|00000b60| 32 3b 0d 09 09 09 7d 0d | 09 09 09 65 6d 64 70 2d |2;....}.|...emdp-|
|00000b70| 3e 69 6e 70 75 74 5f 63 | 6e 74 20 3d 20 2b 2b 65 |>input_c|nt = ++e|
|00000b80| 6d 64 70 2d 3e 69 6e 70 | 75 74 5f 63 6e 74 20 26 |mdp->inp|ut_cnt &|
|00000b90| 20 33 3b 0d 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 | 3;....b|reak;...|
|00000ba0| 63 61 73 65 20 32 3a 09 | 09 09 09 09 09 09 09 20 |case 2:.|....... |
|00000bb0| 2f 2a 20 67 61 74 68 65 | 72 69 6e 67 20 64 61 74 |/* gathe|ring dat|
|00000bc0| 61 20 2a 2f 0d 09 09 09 | 69 66 20 28 64 61 74 61 |a */....|if (data|
|00000bd0| 20 21 3d 20 30 78 37 66 | 29 0d 09 09 09 09 2a 28 | != 0x7f|).....*(|
|00000be0| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 64 61 |emdp->rc|v_pkt.da|
|00000bf0| 74 61 2b 65 6d 64 70 2d | 3e 69 6e 70 75 74 5f 63 |ta+emdp-|>input_c|
|00000c00| 6e 74 2b 2b 29 20 3d 20 | 64 61 74 61 3b 0d 09 09 |nt++) = |data;...|
|00000c10| 09 65 6c 73 65 20 7b 0d | 09 09 09 09 69 66 20 28 |.else {.|....if (|
|00000c20| 66 74 5f 70 72 6f 63 65 | 73 73 28 29 29 09 09 09 |ft_proce|ss())...|
|00000c30| 2f 2a 20 75 6e 72 61 76 | 65 6c 20 68 65 61 64 65 |/* unrav|el heade|
|00000c40| 72 73 20 26 20 63 61 6c | 6c 20 66 74 33 32 37 30 |rs & cal|l ft3270|
|00000c50| 28 29 20 2a 2f 0d 09 09 | 09 09 09 66 74 5f 72 65 |() */...|...ft_re|
|00000c60| 71 28 29 3b 09 09 09 09 | 20 20 2f 2a 20 72 63 20 |q();....| /* rc |
|00000c70| 21 3d 20 30 3a 20 72 65 | 71 75 65 73 74 20 72 65 |!= 0: re|quest re|
|00000c80| 2d 78 6d 69 73 73 69 6f | 6e 20 2a 2f 0d 09 09 09 |-xmissio|n */....|
|00000c90| 09 65 6d 64 70 2d 3e 69 | 6e 70 75 74 5f 63 6e 74 |.emdp->i|nput_cnt|
|00000ca0| 20 3d 20 65 6d 64 70 2d | 3e 69 6e 70 75 74 5f 73 | = emdp-|>input_s|
|00000cb0| 74 61 74 65 20 3d 20 30 | 3b 0d 09 09 09 7d 0d 09 |tate = 0|;....}..|
|00000cc0| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 7d 0d 0d 0d |..break;|..}.}...|
|00000cd0| 2f 2a 20 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |/* This |routine |
|00000ce0| 70 72 6f 63 65 73 73 65 | 73 20 61 6e 20 69 6e 63 |processe|s an inc|
|00000cf0| 6f 6d 69 6e 67 20 62 6c | 6f 63 6b 20 66 72 6f 6d |oming bl|ock from|
|00000d00| 20 74 65 6c 6e 65 74 2e | 20 2a 2f 0d 0d 74 6e 66 | telnet.| */..tnf|
|00000d10| 74 28 70 74 72 2c 20 6c | 65 6e 29 0d 63 68 61 72 |t(ptr, l|en).char|
|00000d20| 20 2a 70 74 72 3b 0d 69 | 6e 74 20 6c 65 6e 3b 0d | *ptr;.i|nt len;.|
|00000d30| 7b 0d 09 69 6e 74 20 69 | 3b 0d 0d 09 69 66 20 28 |{..int i|;...if (|
|00000d40| 6c 65 6e 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |len == 0|)...retu|
|00000d50| 72 6e 3b 0d 09 09 0d 09 | 66 6f 72 20 28 3b 3b 29 |rn;.....|for (;;)|
|00000d60| 20 7b 09 09 09 09 09 09 | 09 09 09 20 09 09 20 2f | {......|... .. /|
|00000d70| 2a 20 6f 6e 6c 79 20 61 | 20 63 6f 64 69 6e 67 20 |* only a| coding |
|00000d80| 73 74 72 75 63 74 75 72 | 65 20 2a 2f 0d 09 09 6c |structur|e */...l|
|00000d90| 65 6e 20 2d 3d 20 32 3b | 09 09 09 09 09 09 09 09 |en -= 2;|........|
|00000da0| 09 09 20 2f 2a 20 73 6b | 69 70 20 33 32 37 30 20 |.. /* sk|ip 3270 |
|00000db0| 63 6d 64 20 26 20 57 43 | 43 20 2a 2f 0d 09 09 70 |cmd & WC|C */...p|
|00000dc0| 74 72 20 2b 3d 20 32 3b | 0d 09 09 69 66 20 28 6c |tr += 2;|...if (l|
|00000dd0| 65 6e 20 3c 20 36 29 20 | 62 72 65 61 6b 3b 09 09 |en < 6) |break;..|
|00000de0| 09 09 09 09 09 09 2f 2a | 20 37 31 37 31 20 73 62 |....../*| 7171 sb|
|00000df0| 61 27 73 20 2a 2f 0d 09 | 09 69 66 20 28 2a 70 74 |a's */..|.if (*pt|
|00000e00| 72 20 21 3d 20 30 78 31 | 31 20 7c 7c 20 2a 28 70 |r != 0x1|1 || *(p|
|00000e10| 74 72 2b 33 29 20 21 3d | 20 30 78 31 31 29 20 7b |tr+3) !=| 0x11) {|
|00000e20| 0d 09 09 09 63 6d 64 20 | 28 70 74 72 20 2d 20 32 |....cmd |(ptr - 2|
|00000e30| 2c 20 6c 65 6e 20 2b 20 | 32 29 3b 09 09 09 09 09 |, len + |2);.....|
|00000e40| 09 2f 2a 20 73 65 65 20 | 77 68 61 74 20 68 6f 73 |./* see |what hos|
|00000e50| 74 20 68 61 64 20 74 6f | 20 73 61 79 20 2a 2f 0d |t had to| say */.|
|00000e60| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 7d 0d 09 |...break|;....}..|
|00000e70| 09 6c 65 6e 20 2d 3d 20 | 36 3b 09 09 09 09 09 09 |.len -= |6;......|
|00000e80| 09 09 09 09 2f 2a 20 73 | 6b 69 70 20 37 31 37 31 |..../* s|kip 7171|
|00000e90| 20 68 65 61 64 65 72 73 | 20 2a 2f 0d 09 09 70 74 | headers| */...pt|
|00000ea0| 72 20 2b 3d 20 36 3b 0d | 09 09 69 66 20 28 6c 65 |r += 6;.|..if (le|
|00000eb0| 6e 20 3c 20 31 30 29 20 | 62 72 65 61 6b 3b 09 09 |n < 10) |break;..|
|00000ec0| 09 09 09 09 09 2f 2a 20 | 66 74 33 32 37 30 20 73 |...../* |ft3270 s|
|00000ed0| 74 75 66 66 20 2a 2f 0d | 0d 09 09 66 6f 72 20 28 |tuff */.|...for (|
|00000ee0| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 6c 65 |emdp->rc|v_pkt.le|
|00000ef0| 6e 20 3d 20 30 2c 20 69 | 20 3d 20 30 3b 20 69 20 |n = 0, i| = 0; i |
|00000f00| 3c 20 34 3b 20 2b 2b 69 | 29 20 09 09 0d 09 09 09 |< 4; ++i|) ......|
|00000f10| 2f 2a 20 67 65 74 20 70 | 61 63 6b 65 74 20 6c 65 |/* get p|acket le|
|00000f20| 6e 67 74 68 20 2a 2f 0d | 09 09 09 65 6d 64 70 2d |ngth */.|...emdp-|
|00000f30| 3e 72 63 76 5f 70 6b 74 | 2e 6c 65 6e 20 3d 20 28 |>rcv_pkt|.len = (|
|00000f40| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 6c 65 |emdp->rc|v_pkt.le|
|00000f50| 6e 20 3c 3c 20 34 29 20 | 2b 20 28 2a 70 74 72 2b |n << 4) |+ (*ptr+|
|00000f60| 2b 20 26 20 30 78 30 66 | 29 3b 0d 09 09 66 6f 72 |+ & 0x0f|);...for|
|00000f70| 20 28 65 6d 64 70 2d 3e | 72 63 76 5f 70 6b 74 2e | (emdp->|rcv_pkt.|
|00000f80| 63 68 6b 20 3d 20 30 2c | 20 69 20 3d 20 30 3b 20 |chk = 0,| i = 0; |
|00000f90| 69 20 3c 20 34 3b 20 2b | 2b 69 29 20 20 09 09 0d |i < 4; +|+i) ...|
|00000fa0| 09 09 09 2f 2a 20 67 65 | 74 20 70 61 63 6b 65 74 |.../* ge|t packet|
|00000fb0| 20 63 68 6b 73 75 6d 20 | 2a 2f 0d 09 09 09 65 6d | chksum |*/....em|
|00000fc0| 64 70 2d 3e 72 63 76 5f | 70 6b 74 2e 63 68 6b 20 |dp->rcv_|pkt.chk |
|00000fd0| 3d 20 28 65 6d 64 70 2d | 3e 72 63 76 5f 70 6b 74 |= (emdp-|>rcv_pkt|
|00000fe0| 2e 63 68 6b 20 3c 3c 20 | 34 29 20 2b 20 28 2a 70 |.chk << |4) + (*p|
|00000ff0| 74 72 2b 2b 20 26 20 30 | 78 30 66 29 3b 0d 0d 09 |tr++ & 0|x0f);...|
|00001000| 09 65 6d 64 70 2d 3e 69 | 6e 70 75 74 5f 63 6e 74 |.emdp->i|nput_cnt|
|00001010| 20 3d 20 6c 65 6e 20 2d | 20 39 3b 09 09 0d 09 09 | = len -| 9;.....|
|00001020| 09 2f 2a 20 6c 65 6e 28 | 34 29 20 2b 20 63 68 6b |./* len(|4) + chk|
|00001030| 73 75 6d 28 34 29 20 2b | 20 30 78 37 66 20 74 72 |sum(4) +| 0x7f tr|
|00001040| 61 69 6c 65 72 20 2a 2f | 0d 09 09 42 6c 6f 63 6b |ailer */|...Block|
|00001050| 4d 6f 76 65 28 70 74 72 | 2c 20 65 6d 64 70 2d 3e |Move(ptr|, emdp->|
|00001060| 72 63 76 5f 70 6b 74 2e | 64 61 74 61 2c 20 28 6c |rcv_pkt.|data, (l|
|00001070| 6f 6e 67 29 20 65 6d 64 | 70 2d 3e 69 6e 70 75 74 |ong) emd|p->input|
|00001080| 5f 63 6e 74 29 3b 0d 09 | 09 69 66 20 28 66 74 5f |_cnt);..|.if (ft_|
|00001090| 70 72 6f 63 65 73 73 28 | 29 29 09 09 09 20 09 09 |process(|))... ..|
|000010a0| 20 2f 2a 20 75 6e 72 61 | 76 65 6c 20 68 65 61 64 | /* unra|vel head|
|000010b0| 65 72 73 20 26 20 63 61 | 6c 6c 20 66 74 33 32 37 |ers & ca|ll ft327|
|000010c0| 30 28 29 20 2a 2f 0d 09 | 09 09 66 74 5f 72 65 71 |0() */..|..ft_req|
|000010d0| 28 29 3b 09 09 09 09 09 | 09 20 2f 2a 20 72 63 20 |();.....|. /* rc |
|000010e0| 21 3d 20 30 3a 20 72 65 | 71 75 65 73 74 20 72 65 |!= 0: re|quest re|
|000010f0| 2d 78 6d 69 73 73 69 6f | 6e 20 2a 2f 0d 09 09 72 |-xmissio|n */...r|
|00001100| 65 74 75 72 6e 3b 09 09 | 09 09 09 09 09 09 20 2f |eturn;..|...... /|
|00001110| 2a 20 64 6f 20 6e 6f 74 | 20 63 61 6e 63 65 6c 20 |* do not| cancel |
|00001120| 66 69 6c 65 20 74 72 61 | 6e 73 66 65 72 20 2a 2f |file tra|nsfer */|
|00001130| 0d 09 7d 0d 09 66 74 5f | 64 6f 6e 65 28 29 3b 09 |..}..ft_|done();.|
|00001140| 09 09 09 09 09 09 09 09 | 09 09 20 20 2f 2a 20 61 |........|.. /* a|
|00001150| 6e 20 65 72 72 6f 72 20 | 6f 63 63 75 72 72 65 64 |n error |occurred|
|00001160| 20 2a 2f 0d 7d 0d 0d 0d | 0d 2f 2a 20 70 72 6f 63 | */.}...|./* proc|
|00001170| 65 73 73 20 61 6e 20 66 | 74 33 32 37 30 20 70 61 |ess an f|t3270 pa|
|00001180| 63 6b 65 74 20 2a 2f 0d | 2f 2a 20 69 66 20 6f 6b |cket */.|/* if ok|
|00001190| 20 63 61 6c 6c 20 66 74 | 33 32 37 30 20 26 20 72 | call ft|3270 & r|
|000011a0| 65 74 75 72 6e 20 30 20 | 6f 74 68 65 72 77 69 73 |eturn 0 |otherwis|
|000011b0| 65 20 72 63 20 21 3d 20 | 30 20 2a 2f 0d 0d 66 74 |e rc != |0 */..ft|
|000011c0| 5f 70 72 6f 63 65 73 73 | 28 29 20 0d 7b 0d 09 69 |_process|() .{..i|
|000011d0| 6e 74 20 69 2c 20 6c 65 | 6e 67 74 68 3b 0d 09 75 |nt i, le|ngth;..u|
|000011e0| 6e 73 69 67 6e 65 64 20 | 63 68 6b 73 75 6d 3b 0d |nsigned |chksum;.|
|000011f0| 09 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 2a |.unsigne|d char *|
|00001200| 62 75 66 66 2c 20 2a 62 | 75 66 31 3b 0d 0d 09 69 |buff, *b|uf1;...i|
|00001210| 66 20 28 28 65 6d 64 70 | 2d 3e 66 74 5f 66 6c 61 |f ((emdp|->ft_fla|
|00001220| 67 20 26 20 4e 45 47 4f | 29 20 26 26 20 28 21 28 |g & NEGO|) && (!(|
|00001230| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 26 20 |emdp->ft|_flag & |
|00001240| 43 31 39 29 20 7c 7c 20 | 28 65 6d 64 70 2d 3e 66 |C19) || |(emdp->f|
|00001250| 74 5f 66 6c 61 67 20 26 | 20 46 54 41 53 43 49 49 |t_flag &| FTASCII|
|00001260| 29 29 29 0d 09 09 65 6d | 64 70 2d 3e 66 74 5f 66 |)))...em|dp->ft_f|
|00001270| 6c 61 67 20 7c 3d 20 4e | 4f 53 54 52 49 50 3b 0d |lag |= N|OSTRIP;.|
|00001280| 09 69 66 20 28 21 28 65 | 6d 64 70 2d 3e 66 74 5f |.if (!(e|mdp->ft_|
|00001290| 66 6c 61 67 20 26 20 4e | 45 47 4f 29 20 7c 7c 20 |flag & N|EGO) || |
|000012a0| 28 65 6d 64 70 2d 3e 66 | 74 5f 66 6c 61 67 20 26 |(emdp->f|t_flag &|
|000012b0| 20 46 49 4c 45 52 43 56 | 29 29 20 62 75 66 66 20 | FILERCV|)) buff |
|000012c0| 3d 20 65 6d 64 70 2d 3e | 66 74 33 32 37 30 5f 62 |= emdp->|ft3270_b|
|000012d0| 75 66 66 3b 0d 09 09 65 | 6c 73 65 09 09 09 09 09 |uff;...e|lse.....|
|000012e0| 62 75 66 66 20 3d 20 26 | 65 6d 64 70 2d 3e 61 63 |buff = &|emdp->ac|
|000012f0| 6b 5f 62 75 66 66 5b 30 | 5d 3b 0d 09 69 66 20 28 |k_buff[0|];..if (|
|00001300| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 26 20 |emdp->ft|_flag & |
|00001310| 4e 4f 53 54 52 49 50 29 | 20 62 75 66 31 20 3d 20 |NOSTRIP)| buf1 = |
|00001320| 62 75 66 66 3b 0d 09 09 | 65 6c 73 65 09 09 09 09 |buff;...|else....|
|00001330| 09 20 62 75 66 31 20 3d | 20 65 6d 64 70 2d 3e 74 |. buf1 =| emdp->t|
|00001340| 62 75 66 66 3b 0d 0d 09 | 69 66 20 28 65 6d 64 70 |buff;...|if (emdp|
|00001350| 2d 3e 72 63 76 5f 70 6b | 74 2e 6c 65 6e 20 21 3d |->rcv_pk|t.len !=|
|00001360| 20 65 6d 64 70 2d 3e 69 | 6e 70 75 74 5f 63 6e 74 | emdp->i|nput_cnt|
|00001370| 29 0d 09 09 72 65 74 75 | 72 6e 20 28 31 29 3b 0d |)...retu|rn (1);.|
|00001380| 09 2a 28 65 6d 64 70 2d | 3e 72 63 76 5f 70 6b 74 |.*(emdp-|>rcv_pkt|
|00001390| 2e 64 61 74 61 2b 65 6d | 64 70 2d 3e 69 6e 70 75 |.data+em|dp->inpu|
|000013a0| 74 5f 63 6e 74 29 20 3d | 20 30 3b 09 09 20 2f 2a |t_cnt) =| 0;.. /*|
|000013b0| 20 70 61 64 20 77 69 74 | 68 20 61 20 7a 65 72 6f | pad wit|h a zero|
|000013c0| 20 66 6f 72 20 63 6b 73 | 75 6d 6d 69 6e 67 20 2a | for cks|umming *|
|000013d0| 2f 0d 09 63 68 6b 73 75 | 6d 20 3d 20 7e 63 6b 73 |/..chksu|m = ~cks|
|000013e0| 75 6d 20 28 65 6d 64 70 | 2d 3e 72 63 76 5f 70 6b |um (emdp|->rcv_pk|
|000013f0| 74 2e 64 61 74 61 2c 20 | 28 65 6d 64 70 2d 3e 69 |t.data, |(emdp->i|
|00001400| 6e 70 75 74 5f 63 6e 74 | 20 2b 20 31 29 20 3e 3e |nput_cnt| + 1) >>|
|00001410| 20 31 29 3b 0d 09 69 66 | 20 28 65 6d 64 70 2d 3e | 1);..if| (emdp->|
|00001420| 72 63 76 5f 70 6b 74 2e | 63 68 6b 20 21 3d 20 28 |rcv_pkt.|chk != (|
|00001430| 63 68 6b 73 75 6d 29 29 | 20 0d 09 09 72 65 74 75 |chksum))| ...retu|
|00001440| 72 6e 20 28 32 29 3b 0d | 09 66 6f 72 20 28 69 20 |rn (2);.|.for (i |
|00001450| 3d 20 6c 65 6e 67 74 68 | 20 3d 20 30 3b 20 69 20 |= length| = 0; i |
|00001460| 3c 20 65 6d 64 70 2d 3e | 69 6e 70 75 74 5f 63 6e |< emdp->|input_cn|
|00001470| 74 3b 20 69 2b 2b 2c 20 | 6c 65 6e 67 74 68 2b 2b |t; i++, |length++|
|00001480| 29 20 7b 0d 09 09 69 66 | 20 28 2a 28 65 6d 64 70 |) {...if| (*(emdp|
|00001490| 2d 3e 72 63 76 5f 70 6b | 74 2e 64 61 74 61 2b 69 |->rcv_pk|t.data+i|
|000014a0| 29 20 3d 3d 20 45 53 43 | 5f 43 48 41 52 29 0d 09 |) == ESC|_CHAR)..|
|000014b0| 09 09 69 66 20 28 2a 28 | 65 6d 64 70 2d 3e 72 63 |..if (*(|emdp->rc|
|000014c0| 76 5f 70 6b 74 2e 64 61 | 74 61 2b 28 2b 2b 69 29 |v_pkt.da|ta+(++i)|
|000014d0| 29 20 21 3d 20 45 53 43 | 5f 43 48 41 52 29 0d 09 |) != ESC|_CHAR)..|
|000014e0| 09 09 09 2a 28 65 6d 64 | 70 2d 3e 72 63 76 5f 70 |...*(emd|p->rcv_p|
|000014f0| 6b 74 2e 64 61 74 61 2b | 69 29 20 3d 20 66 74 5f |kt.data+|i) = ft_|
|00001500| 69 6e 70 75 74 5f 74 61 | 62 6c 65 5b 2a 28 65 6d |input_ta|ble[*(em|
|00001510| 64 70 2d 3e 72 63 76 5f | 70 6b 74 2e 64 61 74 61 |dp->rcv_|pkt.data|
|00001520| 2b 69 29 20 26 20 30 78 | 30 66 5d 3b 0d 09 09 62 |+i) & 0x|0f];...b|
|00001530| 75 66 31 5b 6c 65 6e 67 | 74 68 5d 20 3d 20 2a 28 |uf1[leng|th] = *(|
|00001540| 65 6d 64 70 2d 3e 72 63 | 76 5f 70 6b 74 2e 64 61 |emdp->rc|v_pkt.da|
|00001550| 74 61 2b 69 29 3b 0d 09 | 7d 0d 09 2f 2a 20 6e 6f |ta+i);..|}../* no|
|00001560| 77 20 77 65 20 68 61 76 | 65 20 37 20 62 69 74 20 |w we hav|e 7 bit |
|00001570| 64 61 74 61 20 2a 2f 0d | 0d 09 69 66 20 28 21 28 |data */.|..if (!(|
|00001580| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 26 20 |emdp->ft|_flag & |
|00001590| 4e 4f 53 54 52 49 50 29 | 29 0d 09 09 69 66 20 28 |NOSTRIP)|)...if (|
|000015a0| 28 6c 65 6e 67 74 68 20 | 3d 20 62 69 74 5f 72 65 |(length |= bit_re|
|000015b0| 73 74 20 28 65 6d 64 70 | 2d 3e 74 62 75 66 66 2c |st (emdp|->tbuff,|
|000015c0| 20 62 75 66 66 2c 20 6c | 65 6e 67 74 68 29 29 20 | buff, l|ength)) |
|000015d0| 3d 3d 20 30 29 20 0d 09 | 09 09 72 65 74 75 72 6e |== 0) ..|..return|
|000015e0| 20 28 33 29 3b 0d 09 66 | 74 33 32 37 30 28 62 75 | (3);..f|t3270(bu|
|000015f0| 66 66 2c 20 6c 65 6e 67 | 74 68 20 2d 20 32 29 3b |ff, leng|th - 2);|
|00001600| 0d 09 72 65 74 75 72 6e | 20 28 30 29 3b 0d 7d 0d |..return| (0);.}.|
|00001610| 0d 2f 2a 20 62 75 69 6c | 64 20 61 6e 20 66 74 33 |./* buil|d an ft3|
|00001620| 32 37 30 20 70 61 63 6b | 65 74 20 6f 75 74 20 6f |270 pack|et out o|
|00001630| 66 20 73 6f 6d 65 20 66 | 69 6c 65 20 74 72 61 6e |f some f|ile tran|
|00001640| 73 66 65 72 20 64 61 74 | 61 20 2a 2f 0d 0d 66 74 |sfer dat|a */..ft|
|00001650| 5f 75 70 6c 6f 61 64 28 | 70 74 72 2c 20 6c 65 6e |_upload(|ptr, len|
|00001660| 29 0d 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 |).unsign|ed char |
|00001670| 2a 70 74 72 3b 0d 69 6e | 74 20 6c 65 6e 3b 0d 09 |*ptr;.in|t len;..|
|00001680| 7b 0d 09 69 6e 74 20 69 | 2c 20 6a 2c 20 6b 3b 0d |{..int i|, j, k;.|
|00001690| 09 75 6e 73 69 67 6e 65 | 64 20 63 68 6b 73 75 6d |.unsigne|d chksum|
|000016a0| 3b 0d 09 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |;..unsig|ned char|
|000016b0| 20 2a 62 75 66 66 3b 0d | 0d 09 69 66 20 28 21 28 | *buff;.|..if (!(|
|000016c0| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 26 20 |emdp->ft|_flag & |
|000016d0| 4e 4f 53 54 52 49 50 29 | 29 20 7b 0d 09 09 62 75 |NOSTRIP)|) {...bu|
|000016e0| 66 66 20 3d 20 65 6d 64 | 70 2d 3e 74 62 75 66 66 |ff = emd|p->tbuff|
|000016f0| 3b 09 09 09 09 09 09 09 | 09 09 2f 2a 20 64 65 63 |;.......|../* dec|
|00001700| 69 64 65 20 77 68 65 74 | 68 65 72 20 6f 72 20 6e |ide whet|her or n|
|00001710| 6f 74 20 74 6f 20 2a 2f | 0d 09 09 6c 65 6e 20 3d |ot to */|...len =|
|00001720| 20 62 69 74 5f 73 74 72 | 69 70 20 28 70 74 72 2c | bit_str|ip (ptr,|
|00001730| 20 65 6d 64 70 2d 3e 74 | 62 75 66 66 2c 20 6c 65 | emdp->t|buff, le|
|00001740| 6e 29 3b 09 09 2f 2a 20 | 6d 61 6b 65 20 37 20 62 |n);../* |make 7 b|
|00001750| 69 74 20 64 61 74 61 20 | 2a 2f 0d 09 7d 0d 09 65 |it data |*/..}..e|
|00001760| 6c 73 65 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |lse.....|........|
|00001770| 2f 2a 20 61 76 6f 69 64 | 20 74 65 6d 70 2e 20 62 |/* avoid| temp. b|
|00001780| 75 66 66 65 72 20 2a 2f | 0d 09 09 62 75 66 66 20 |uffer */|...buff |
|00001790| 3d 20 70 74 72 3b 0d 0d | 09 66 6f 72 20 28 69 20 |= ptr;..|.for (i |
|000017a0| 3d 20 6a 20 3d 20 30 3b | 20 69 20 3c 20 6c 65 6e |= j = 0;| i < len|
|000017b0| 3b 20 69 2b 2b 2c 20 6a | 2b 2b 29 20 7b 09 09 20 |; i++, j|++) {.. |
|000017c0| 2f 2a 20 70 72 6f 63 65 | 73 73 20 73 70 65 63 69 |/* proce|ss speci|
|000017d0| 61 6c 20 63 68 61 72 61 | 63 74 65 72 73 20 2a 2f |al chara|cters */|
|000017e0| 0d 09 09 69 66 20 28 62 | 75 66 66 5b 69 5d 20 3d |...if (b|uff[i] =|
|000017f0| 3d 20 45 53 43 5f 43 48 | 41 52 29 09 09 09 09 09 |= ESC_CH|AR).....|
|00001800| 20 2f 2a 20 69 6e 74 6f | 20 65 73 63 61 70 65 20 | /* into| escape |
|00001810| 73 65 71 75 65 6e 63 65 | 73 20 2a 2f 0d 09 09 09 |sequence|s */....|
|00001820| 2a 28 65 6d 64 70 2d 3e | 73 65 6e 64 5f 70 6b 74 |*(emdp->|send_pkt|
|00001830| 2e 64 61 74 61 2b 6a 2b | 2b 29 20 3d 20 45 53 43 |.data+j+|+) = ESC|
|00001840| 5f 43 48 41 52 3b 09 20 | 20 2f 2a 20 65 73 63 20 |_CHAR;. | /* esc |
|00001850| 64 75 70 6c 69 63 61 74 | 65 73 20 69 74 73 65 6c |duplicat|es itsel|
|00001860| 66 20 2a 2f 0d 09 09 65 | 6c 73 65 20 69 66 20 28 |f */...e|lse if (|
|00001870| 28 6b 20 3d 20 66 74 5f | 73 63 61 6e 20 28 66 74 |(k = ft_|scan (ft|
|00001880| 5f 74 61 62 6c 65 2c 20 | 62 75 66 66 5b 69 5d 2c |_table, |buff[i],|
|00001890| 20 4e 55 4d 45 53 43 29 | 29 20 21 3d 20 2d 31 29 | NUMESC)|) != -1)|
|000018a0| 20 7b 0d 09 09 09 2a 28 | 65 6d 64 70 2d 3e 73 65 | {....*(|emdp->se|
|000018b0| 6e 64 5f 70 6b 74 2e 64 | 61 74 61 2b 6a 2b 2b 29 |nd_pkt.d|ata+j++)|
|000018c0| 20 3d 20 45 53 43 5f 43 | 48 41 52 3b 09 20 20 2f | = ESC_C|HAR;. /|
|000018d0| 2a 20 61 20 68 69 74 20 | 2a 2f 0d 09 09 09 62 75 |* a hit |*/....bu|
|000018e0| 66 66 5b 69 5d 20 3d 20 | 30 78 34 30 20 2b 20 6b |ff[i] = |0x40 + k|
|000018f0| 3b 09 09 09 09 09 09 2f | 2a 20 75 73 65 20 74 61 |;....../|* use ta|
|00001900| 62 6c 65 20 69 6e 64 65 | 78 20 2a 2f 0d 09 09 7d |ble inde|x */...}|
|00001910| 0d 09 09 2a 28 65 6d 64 | 70 2d 3e 73 65 6e 64 5f |...*(emd|p->send_|
|00001920| 70 6b 74 2e 64 61 74 61 | 2b 6a 29 20 3d 20 62 75 |pkt.data|+j) = bu|
|00001930| 66 66 5b 69 5d 3b 0d 09 | 7d 0d 0d 09 2a 28 65 6d |ff[i];..|}...*(em|
|00001940| 64 70 2d 3e 73 65 6e 64 | 5f 70 6b 74 2e 64 61 74 |dp->send|_pkt.dat|
|00001950| 61 2b 6a 29 20 3d 20 30 | 3b 09 09 20 2f 2a 20 70 |a+j) = 0|;.. /* p|
|00001960| 61 64 20 77 69 74 68 20 | 61 20 7a 65 72 6f 20 66 |ad with |a zero f|
|00001970| 6f 72 20 63 6b 73 75 6d | 6d 69 6e 67 20 2a 2f 0d |or cksum|ming */.|
|00001980| 09 63 68 6b 73 75 6d 20 | 3d 20 28 7e 63 6b 73 75 |.chksum |= (~cksu|
|00001990| 6d 20 28 65 6d 64 70 2d | 3e 73 65 6e 64 5f 70 6b |m (emdp-|>send_pk|
|000019a0| 74 2e 64 61 74 61 2c 20 | 28 6a 20 2b 20 31 29 20 |t.data, |(j + 1) |
|000019b0| 3e 3e 20 31 29 29 3b 0d | 09 66 6f 72 20 28 69 20 |>> 1));.|.for (i |
|000019c0| 3d 20 31 32 2c 20 6b 20 | 3d 20 30 3b 20 69 20 3e |= 12, k |= 0; i >|
|000019d0| 3d 20 30 3b 20 69 20 2d | 3d 20 34 2c 20 6b 2b 2b |= 0; i -|= 4, k++|
|000019e0| 29 20 20 2f 2a 20 6d 61 | 6b 65 20 6c 65 6e 67 74 |) /* ma|ke lengt|
|000019f0| 68 20 61 73 20 34 20 63 | 68 61 72 61 63 74 65 72 |h as 4 c|haracter|
|00001a00| 73 20 2a 2f 0d 09 09 65 | 6d 64 70 2d 3e 73 65 6e |s */...e|mdp->sen|
|00001a10| 64 5f 70 6b 74 2e 6c 62 | 75 66 66 5b 6b 5d 20 3d |d_pkt.lb|uff[k] =|
|00001a20| 20 28 28 6a 20 3e 3e 20 | 69 29 20 26 20 30 78 30 | ((j >> |i) & 0x0|
|00001a30| 66 29 20 7c 20 30 78 34 | 30 3b 0d 09 66 6f 72 20 |f) | 0x4|0;..for |
|00001a40| 28 69 20 3d 20 31 32 2c | 20 6b 20 3d 20 30 3b 20 |(i = 12,| k = 0; |
|00001a50| 69 20 3e 3d 20 30 3b 20 | 69 20 2d 3d 20 34 2c 20 |i >= 0; |i -= 4, |
|00001a60| 6b 2b 2b 29 20 20 2f 2a | 20 6d 61 6b 65 20 63 68 |k++) /*| make ch|
|00001a70| 6b 73 75 6d 20 61 73 20 | 34 20 63 68 61 72 61 63 |ksum as |4 charac|
|00001a80| 74 65 72 73 20 2a 2f 0d | 09 09 65 6d 64 70 2d 3e |ters */.|..emdp->|
|00001a90| 73 65 6e 64 5f 70 6b 74 | 2e 63 62 75 66 66 5b 6b |send_pkt|.cbuff[k|
|00001aa0| 5d 20 3d 20 28 28 63 68 | 6b 73 75 6d 20 3e 3e 20 |] = ((ch|ksum >> |
|00001ab0| 69 29 20 26 20 30 78 30 | 66 29 20 7c 20 30 78 34 |i) & 0x0|f) | 0x4|
|00001ac0| 30 3b 0d 09 65 6d 64 70 | 2d 3e 73 65 6e 64 5f 70 |0;..emdp|->send_p|
|00001ad0| 6b 74 2e 70 6b 74 5f 6c | 65 6e 20 3d 20 6a 20 2b |kt.pkt_l|en = j +|
|00001ae0| 20 38 3b 09 09 09 09 09 | 20 20 2f 2a 20 73 74 6f | 8;.....| /* sto|
|00001af0| 72 65 20 72 65 61 6c 20 | 6c 65 6e 67 74 68 20 6f |re real |length o|
|00001b00| 66 20 70 61 63 6b 65 74 | 20 2a 2f 0d 09 66 74 5f |f packet| */..ft_|
|00001b10| 68 65 61 64 65 72 28 29 | 3b 0d 09 73 65 6e 64 5f |header()|;..send_|
|00001b20| 62 6c 6f 63 6b 28 65 6d | 64 70 2d 3e 73 65 6e 64 |block(em|dp->send|
|00001b30| 5f 70 6b 74 2e 6c 62 75 | 66 66 2c 20 38 29 3b 0d |_pkt.lbu|ff, 8);.|
|00001b40| 09 73 65 6e 64 5f 62 6c | 6f 63 6b 28 65 6d 64 70 |.send_bl|ock(emdp|
|00001b50| 2d 3e 73 65 6e 64 5f 70 | 6b 74 2e 64 61 74 61 2c |->send_p|kt.data,|
|00001b60| 20 6a 29 3b 0d 09 66 74 | 5f 74 72 61 69 6c 65 72 | j);..ft|_trailer|
|00001b70| 28 29 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 09 4f 72 64 |();.}../|*. *.Ord|
|00001b80| 65 72 20 6f 66 20 70 72 | 6f 63 65 73 73 69 6e 67 |er of pr|ocessing|
|00001b90| 20 66 74 33 32 37 30 20 | 64 61 74 61 20 70 61 63 | ft3270 |data pac|
|00001ba0| 6b 65 74 73 3a 0d 20 2a | 09 20 20 31 29 20 73 65 |kets:. *|. 1) se|
|00001bb0| 65 20 69 66 20 77 65 20 | 61 72 65 20 62 65 69 6e |e if we |are bein|
|00001bc0| 67 20 73 68 75 74 20 64 | 6f 77 6e 20 62 79 20 68 |g shut d|own by h|
|00001bd0| 6f 73 74 20 70 72 6f 67 | 72 61 6d 2e 0d 20 2a 09 |ost prog|ram.. *.|
|00001be0| 20 20 32 29 20 71 75 69 | 74 20 61 62 6e 6f 72 6d | 2) qui|t abnorm|
|00001bf0| 61 6c 6c 79 20 69 66 20 | 77 65 20 61 72 65 20 65 |ally if |we are e|
|00001c00| 78 70 65 63 74 69 6e 67 | 20 68 6f 73 74 20 63 6c |xpecting| host cl|
|00001c10| 6f 73 65 20 26 20 64 69 | 64 6e 27 74 20 67 65 74 |ose & di|dn't get|
|00001c20| 20 69 74 2e 0d 20 2a 09 | 20 20 33 29 20 63 68 65 | it.. *.| 3) che|
|00001c30| 63 6b 20 66 6f 72 20 75 | 73 65 72 20 68 61 6c 74 |ck for u|ser halt|
|00001c40| 2e 0d 20 2a 09 20 20 34 | 29 20 76 65 72 69 66 79 |.. *. 4|) verify|
|00001c50| 20 31 73 74 20 62 79 74 | 65 20 6f 66 20 64 61 74 | 1st byt|e of dat|
|00001c60| 61 20 73 74 72 65 61 6d | 2e 0d 20 2a 09 20 20 35 |a stream|.. *. 5|
|00001c70| 29 20 69 66 20 77 65 20 | 68 61 76 65 6e 27 74 20 |) if we |haven't |
|00001c80| 61 6c 72 65 61 64 79 20 | 70 72 6f 63 65 73 73 65 |already |processe|
|00001c90| 64 20 6e 65 67 6f 74 69 | 61 74 69 6f 6e 2c 20 74 |d negoti|ation, t|
|00001ca0| 68 65 6e 20 74 68 69 73 | 20 69 73 20 69 74 2e 0d |hen this| is it..|
|00001cb0| 20 2a 09 20 20 36 29 20 | 63 68 65 63 6b 20 66 6f | *. 6) |check fo|
|00001cc0| 72 20 72 65 2d 74 72 61 | 6e 73 6d 69 73 73 69 6f |r re-tra|nsmissio|
|00001cd0| 6e 20 72 65 71 75 65 73 | 74 2e 0d 20 2a 09 20 20 |n reques|t.. *. |
|00001ce0| 37 29 20 64 65 61 6c 20 | 77 69 74 68 20 72 65 73 |7) deal |with res|
|00001cf0| 70 65 63 74 69 76 65 20 | 65 6f 66 27 73 2e 0d 20 |pective |eof's.. |
|00001d00| 2a 09 20 20 38 29 20 63 | 6f 70 79 20 64 61 74 61 |*. 8) c|opy data|
|00001d10| 2e 0d 20 2a 2f 0d 0d 66 | 74 33 32 37 30 28 70 74 |.. */..f|t3270(pt|
|00001d20| 72 2c 20 6c 65 6e 67 74 | 68 29 0d 75 6e 73 69 67 |r, lengt|h).unsig|
|00001d30| 6e 65 64 20 63 68 61 72 | 20 2a 70 74 72 3b 0d 69 |ned char| *ptr;.i|
|00001d40| 6e 74 20 6c 65 6e 67 74 | 68 3b 0d 7b 0d 09 75 6e |nt lengt|h;.{..un|
|00001d50| 73 69 67 6e 65 64 20 63 | 68 61 72 20 61 63 6b 3b |signed c|har ack;|
|00001d60| 0d 09 69 6e 74 20 69 3b | 0d 0d 09 69 66 20 28 2a |..int i;|...if (*|
|00001d70| 70 74 72 20 3d 3d 20 53 | 48 55 54 44 4f 57 4e 29 |ptr == S|HUTDOWN)|
|00001d80| 20 7b 09 09 20 20 2f 2a | 20 6e 6f 72 6d 61 6c 20 | {.. /*| normal |
|00001d90| 74 65 72 6d 69 6e 61 74 | 69 6f 6e 20 2a 2f 0d 09 |terminat|ion */..|
|00001da0| 09 66 74 61 63 6b 28 52 | 45 4e 54 45 52 29 3b 0d |.ftack(R|ENTER);.|
|00001db0| 09 09 66 74 5f 64 6f 6e | 65 28 29 3b 0d 09 09 72 |..ft_don|e();...r|
|00001dc0| 65 74 75 72 6e 3b 0d 09 | 7d 0d 09 69 66 20 28 65 |eturn;..|}..if (e|
|00001dd0| 6d 64 70 2d 3e 66 74 5f | 66 6c 61 67 20 26 20 44 |mdp->ft_|flag & D|
|00001de0| 4f 4e 45 29 20 7b 09 09 | 09 20 2f 2a 20 61 62 6e |ONE) {..|. /* abn|
|00001df0| 6f 72 6d 61 6c 20 74 65 | 72 6d 69 6e 61 74 69 6f |ormal te|rminatio|
|00001e00| 6e 20 2a 2f 0d 09 09 66 | 74 61 63 6b 28 52 50 46 |n */...f|tack(RPF|
|00001e10| 31 30 29 3b 0d 09 09 66 | 74 5f 64 6f 6e 65 28 29 |10);...f|t_done()|
|00001e20| 3b 0d 09 09 72 65 74 75 | 72 6e 3b 0d 09 7d 0d 09 |;...retu|rn;..}..|
|00001e30| 69 66 20 28 65 6d 64 70 | 2d 3e 66 74 5f 66 6c 61 |if (emdp|->ft_fla|
|00001e40| 67 20 26 20 48 41 4c 54 | 29 20 7b 09 09 09 20 2f |g & HALT|) {... /|
|00001e50| 2a 20 75 73 65 72 20 72 | 65 71 75 65 73 74 65 64 |* user r|equested|
|00001e60| 20 68 61 6c 74 20 2a 2f | 0d 09 09 66 74 61 63 6b | halt */|...ftack|
|00001e70| 28 52 50 41 31 29 3b 0d | 09 09 72 65 74 75 72 6e |(RPA1);.|..return|
|00001e80| 3b 0d 09 7d 0d 09 69 66 | 20 28 2a 70 74 72 2b 2b |;..}..if| (*ptr++|
|00001e90| 20 21 3d 20 46 54 33 32 | 37 30 29 20 7b 09 09 20 | != FT32|70) {.. |
|00001ea0| 20 2f 2a 20 76 65 72 69 | 66 79 20 31 73 74 20 62 | /* veri|fy 1st b|
|00001eb0| 79 74 65 20 2a 2f 0d 09 | 09 66 74 61 63 6b 28 52 |yte */..|.ftack(R|
|00001ec0| 50 46 39 29 3b 0d 09 09 | 72 65 74 75 72 6e 3b 0d |PF9);...|return;.|
|00001ed0| 09 7d 0d 09 69 66 20 28 | 21 28 65 6d 64 70 2d 3e |.}..if (|!(emdp->|
|00001ee0| 66 74 5f 66 6c 61 67 20 | 26 20 4e 45 47 4f 29 29 |ft_flag |& NEGO))|
|00001ef0| 20 7b 09 09 20 2f 2a 20 | 77 65 20 6e 65 65 64 20 | {.. /* |we need |
|00001f00| 74 6f 20 70 72 6f 63 65 | 73 73 20 6e 65 67 6f 74 |to proce|ss negot|
|00001f10| 69 61 74 69 6f 6e 20 73 | 74 72 69 6e 67 20 2a 2f |iation s|tring */|
|00001f20| 0d 09 09 69 66 20 28 69 | 20 3d 20 66 74 6e 65 67 |...if (i| = ftneg|
|00001f30| 6f 20 28 70 74 72 29 29 | 09 09 20 2f 2a 20 6d 75 |o (ptr))|.. /* mu|
|00001f40| 73 74 20 62 65 20 61 6e | 20 65 72 72 6f 72 20 2a |st be an| error *|
|00001f50| 2f 0d 09 09 09 66 74 61 | 63 6b 20 28 69 29 3b 0d |/....fta|ck (i);.|
|00001f60| 23 69 66 64 65 66 20 50 | 43 0d 09 09 66 74 5f 62 |#ifdef P|C...ft_b|
|00001f70| 61 6e 6e 65 72 28 29 3b | 0d 23 65 6c 73 65 0d 09 |anner();|.#else..|
|00001f80| 09 61 72 63 69 6e 69 74 | 28 65 6d 64 70 2d 3e 66 |.arcinit|(emdp->f|
|00001f90| 74 6e 61 6d 65 29 3b 0d | 09 09 62 79 74 65 5f 6f |tname);.|..byte_o|
|00001fa0| 75 74 20 28 65 6d 64 70 | 2d 3e 66 74 74 6f 74 61 |ut (emdp|->fttota|
|00001fb0| 6c 2c 20 31 33 29 3b 0d | 23 65 6e 64 69 66 0d 09 |l, 13);.|#endif..|
|00001fc0| 09 69 66 20 28 69 20 3d | 3d 20 30 29 20 65 6d 64 |.if (i =|= 0) emd|
|00001fd0| 70 2d 3e 66 74 5f 66 6c | 61 67 20 7c 3d 20 4e 45 |p->ft_fl|ag |= NE|
|00001fe0| 47 4f 3b 0d 09 09 72 65 | 74 75 72 6e 3b 0d 09 7d |GO;...re|turn;..}|
|00001ff0| 0d 09 69 66 20 28 2a 70 | 74 72 20 3d 3d 20 52 45 |..if (*p|tr == RE|
|00002000| 58 4d 49 54 29 20 7b 09 | 09 09 20 2f 2a 20 72 65 |XMIT) {.|.. /* re|
|00002010| 2d 74 72 61 6e 73 6d 69 | 74 20 69 73 20 63 61 6c |-transmi|t is cal|
|00002020| 6c 65 64 20 66 6f 72 20 | 2a 2f 0d 09 09 69 66 20 |led for |*/...if |
|00002030| 28 65 6d 64 70 2d 3e 66 | 74 5f 66 6c 61 67 20 26 |(emdp->f|t_flag &|
|00002040| 20 46 49 4c 45 52 43 56 | 29 09 09 2f 2a 20 69 66 | FILERCV|)../* if|
|00002050| 20 64 6f 77 6e 6c 6f 61 | 64 20 2a 2f 0d 09 09 09 | downloa|d */....|
|00002060| 66 74 61 63 6b 20 28 65 | 6d 64 70 2d 3e 61 63 6b |ftack (e|mdp->ack|
|00002070| 5f 62 75 66 66 5b 30 5d | 29 3b 09 20 20 2f 2a 09 |_buff[0]|);. /*.|
|00002080| 20 72 65 73 65 6e 64 20 | 74 68 65 20 6c 61 73 74 | resend |the last|
|00002090| 20 61 63 6b 20 2a 2f 0d | 09 09 65 6c 73 65 09 09 | ack */.|..else..|
|000020a0| 09 09 09 09 09 09 2f 2a | 20 65 6c 73 65 20 72 65 |....../*| else re|
|000020b0| 73 65 6e 64 20 74 68 65 | 20 62 75 66 66 65 72 20 |send the| buffer |
|000020c0| 2a 2f 0d 09 09 09 66 74 | 5f 75 70 6c 6f 61 64 20 |*/....ft|_upload |
|000020d0| 28 65 6d 64 70 2d 3e 66 | 74 33 32 37 30 5f 62 75 |(emdp->f|t3270_bu|
|000020e0| 66 66 2c 20 65 6d 64 70 | 2d 3e 75 70 6c 6f 61 64 |ff, emdp|->upload|
|000020f0| 5f 63 6e 74 29 3b 0d 09 | 09 62 79 74 65 5f 6f 75 |_cnt);..|.byte_ou|
|00002100| 74 20 28 2b 2b 65 6d 64 | 70 2d 3e 72 65 5f 78 6d |t (++emd|p->re_xm|
|00002110| 69 74 2c 20 31 35 29 3b | 0d 09 09 72 65 74 75 72 |it, 15);|...retur|
|00002120| 6e 3b 0d 09 7d 0d 09 69 | 66 20 28 65 6d 64 70 2d |n;..}..i|f (emdp-|
|00002130| 3e 66 74 5f 66 6c 61 67 | 20 26 20 46 49 4c 45 52 |>ft_flag| & FILER|
|00002140| 43 56 29 20 7b 09 09 20 | 2f 2a 20 63 68 65 63 6b |CV) {.. |/* check|
|00002150| 20 66 6f 72 20 65 6f 66 | 20 66 72 6f 6d 20 68 6f | for eof| from ho|
|00002160| 73 74 20 2a 2f 0d 09 09 | 69 66 20 28 2a 70 74 72 |st */...|if (*ptr|
|00002170| 20 3d 3d 20 44 4f 57 4e | 45 4f 46 29 0d 09 09 09 | == DOWN|EOF)....|
|00002180| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 7c 3d |emdp->ft|_flag |=|
|00002190| 20 46 45 4f 46 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 | FEOF;..|}..else |
|000021a0| 69 66 20 28 65 6d 64 70 | 2d 3e 66 74 5f 66 6c 61 |if (emdp|->ft_fla|
|000021b0| 67 20 26 20 46 45 4f 46 | 29 20 7b 09 20 20 2f 2a |g & FEOF|) {. /*|
|000021c0| 20 6f 72 20 73 65 65 20 | 77 68 65 74 68 65 72 20 | or see |whether |
|000021d0| 74 6f 20 73 65 6e 64 20 | 6f 6e 65 20 2a 2f 0d 09 |to send |one */..|
|000021e0| 09 66 74 61 63 6b 28 52 | 50 41 32 29 3b 0d 09 09 |.ftack(R|PA2);...|
|000021f0| 66 63 6c 6f 73 65 28 65 | 6d 64 70 2d 3e 66 74 31 |fclose(e|mdp->ft1|
|00002200| 29 3b 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |);...ret|urn;..}.|
|00002210| 0d 09 69 66 20 28 65 6d | 64 70 2d 3e 66 74 5f 66 |..if (em|dp->ft_f|
|00002220| 6c 61 67 20 26 20 46 49 | 4c 45 52 43 56 29 20 7b |lag & FI|LERCV) {|
|00002230| 09 09 20 2f 2a 20 64 6f | 77 6e 6c 6f 61 64 20 2a |.. /* do|wnload *|
|00002240| 2f 0d 09 09 70 74 72 2b | 2b 3b 09 09 09 09 09 09 |/...ptr+|+;......|
|00002250| 09 20 2f 2a 20 70 6f 73 | 69 74 69 6f 6e 20 61 74 |. /* pos|ition at|
|00002260| 20 73 74 61 72 74 20 6f | 66 20 64 61 74 61 20 2a | start o|f data *|
|00002270| 2f 0d 09 09 65 6d 64 70 | 2d 3e 66 74 78 66 65 72 |/...emdp|->ftxfer|
|00002280| 65 64 20 2b 3d 20 6c 65 | 6e 67 74 68 3b 0d 09 09 |ed += le|ngth;...|
|00002290| 69 66 20 28 65 6d 64 70 | 2d 3e 66 74 5f 66 6c 61 |if (emdp|->ft_fla|
|000022a0| 67 20 26 20 46 54 41 53 | 43 49 49 29 20 7b 0d 09 |g & FTAS|CII) {..|
|000022b0| 09 09 77 68 69 6c 65 20 | 28 6c 65 6e 67 74 68 2d |..while |(length-|
|000022c0| 2d 29 20 7b 0d 09 09 09 | 09 69 66 20 28 2a 70 74 |-) {....|.if (*pt|
|000022d0| 72 20 3d 3d 20 30 78 30 | 61 29 20 7b 09 09 2f 2a |r == 0x0|a) {../*|
|000022e0| 20 65 6e 64 20 6f 66 20 | 22 72 65 63 6f 72 64 22 | end of |"record"|
|000022f0| 20 2a 2f 0d 09 09 09 09 | 09 2f 2a 20 69 66 20 28 | */.....|./* if (|
|00002300| 66 74 5f 77 72 74 28 30 | 78 61 29 29 20 72 65 74 |ft_wrt(0|xa)) ret|
|00002310| 75 72 6e 28 29 3b 20 6e | 6f 74 20 6f 6e 20 74 68 |urn(); n|ot on th|
|00002320| 65 20 6d 61 63 2d 2d 6b | 65 76 69 6e 2a 2f 0d 09 |e mac--k|evin*/..|
|00002330| 09 09 09 09 69 66 20 28 | 66 74 5f 77 72 74 28 30 |....if (|ft_wrt(0|
|00002340| 78 30 64 29 29 20 72 65 | 74 75 72 6e 28 29 3b 0d |x0d)) re|turn();.|
|00002350| 09 09 09 09 7d 0d 09 09 | 09 09 65 6c 73 65 09 09 |....}...|..else..|
|00002360| 09 09 09 09 09 2f 2a 20 | 6e 6f 72 6d 61 6c 20 74 |...../* |normal t|
|00002370| 65 78 74 20 2a 2f 0d 09 | 09 09 09 09 69 66 20 28 |ext */..|....if (|
|00002380| 66 74 5f 77 72 74 28 2a | 70 74 72 29 29 20 72 65 |ft_wrt(*|ptr)) re|
|00002390| 74 75 72 6e 28 29 3b 0d | 09 09 09 09 70 74 72 2b |turn();.|....ptr+|
|000023a0| 2b 3b 0d 09 09 09 7d 09 | 09 09 09 09 09 20 2f 2a |+;....}.|..... /*|
|000023b0| 20 65 6e 64 20 77 68 69 | 6c 65 20 6c 6f 6f 70 20 | end whi|le loop |
|000023c0| 2a 2f 0d 09 09 7d 0d 09 | 09 65 6c 73 65 0d 09 09 |*/...}..|.else...|
|000023d0| 09 77 68 69 6c 65 20 28 | 6c 65 6e 67 74 68 2d 2d |.while (|length--|
|000023e0| 29 0d 09 09 09 09 69 66 | 20 28 66 74 5f 77 72 74 |).....if| (ft_wrt|
|000023f0| 28 2a 70 74 72 2b 2b 29 | 29 20 72 65 74 75 72 6e |(*ptr++)|) return|
|00002400| 28 29 3b 0d 0d 09 09 61 | 63 6b 20 3d 20 52 45 4e |();....a|ck = REN|
|00002410| 54 45 52 3b 09 09 09 09 | 2f 2a 20 64 65 66 61 75 |TER;....|/* defau|
|00002420| 6c 74 20 61 63 6b 20 2a | 2f 0d 09 09 69 66 20 28 |lt ack *|/...if (|
|00002430| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 26 20 |emdp->ft|_flag & |
|00002440| 46 45 4f 46 29 20 7b 0d | 09 09 09 69 66 20 28 65 |FEOF) {.|...if (e|
|00002450| 6d 64 70 2d 3e 66 74 63 | 6e 74 20 3e 20 30 29 20 |mdp->ftc|nt > 0) |
|00002460| 7b 09 09 20 2f 2a 20 77 | 72 69 74 65 20 6f 75 74 |{.. /* w|rite out|
|00002470| 20 61 6e 79 20 72 65 6d | 61 69 6e 69 6e 67 20 64 | any rem|aining d|
|00002480| 61 74 61 20 2a 2f 0d 09 | 09 09 09 69 66 20 28 66 |ata */..|...if (f|
|00002490| 77 72 69 74 65 20 28 65 | 6d 64 70 2d 3e 66 74 62 |write (e|mdp->ftb|
|000024a0| 75 66 66 2c 20 31 2c 20 | 65 6d 64 70 2d 3e 66 74 |uff, 1, |emdp->ft|
|000024b0| 63 6e 74 2c 20 65 6d 64 | 70 2d 3e 66 74 31 29 20 |cnt, emd|p->ft1) |
|000024c0| 21 3d 20 65 6d 64 70 2d | 3e 66 74 63 6e 74 29 0d |!= emdp-|>ftcnt).|
|000024d0| 09 09 09 09 09 61 63 6b | 20 3d 20 52 50 46 36 3b |.....ack| = RPF6;|
|000024e0| 09 20 20 2f 2a 20 65 72 | 72 6f 72 20 2a 2f 0d 09 |. /* er|ror */..|
|000024f0| 09 09 7d 0d 09 09 09 66 | 63 6c 6f 73 65 28 65 6d |..}....f|close(em|
|00002500| 64 70 2d 3e 66 74 31 29 | 3b 0d 09 09 09 69 66 20 |dp->ft1)|;....if |
|00002510| 28 61 63 6b 20 3d 3d 20 | 52 45 4e 54 45 52 29 20 |(ack == |RENTER) |
|00002520| 7b 0d 09 09 09 09 2f 2a | 20 73 75 63 63 65 73 73 |{...../*| success|
|00002530| 3a 20 6c 6f 61 64 20 74 | 68 65 20 66 69 6c 65 20 |: load t|he file |
|00002540| 69 6e 74 6f 20 74 68 65 | 20 65 64 69 74 20 77 69 |into the| edit wi|
|00002550| 6e 64 6f 77 3f 20 2a 2f | 0d 09 09 09 09 74 65 78 |ndow? */|.....tex|
|00002560| 74 64 6f 77 6e 65 64 69 | 74 28 65 6d 64 70 2d 3e |tdownedi|t(emdp->|
|00002570| 66 74 6e 61 6d 65 29 3b | 0d 09 09 09 7d 0d 09 09 |ftname);|....}...|
|00002580| 09 65 6d 64 70 2d 3e 66 | 74 5f 66 6c 61 67 20 7c |.emdp->f|t_flag ||
|00002590| 3d 20 44 4f 4e 45 3b 0d | 09 09 7d 0d 09 09 66 74 |= DONE;.|..}...ft|
|000025a0| 61 63 6b 20 28 61 63 6b | 29 3b 09 09 09 09 2f 2a |ack (ack|);..../*|
|000025b0| 20 61 63 6b 20 77 69 74 | 68 20 52 45 4e 54 45 52 | ack wit|h RENTER|
|000025c0| 20 6f 72 20 52 43 20 2a | 2f 0d 09 7d 0d 09 65 6c | or RC *|/..}..el|
|000025d0| 73 65 20 7b 09 09 09 09 | 09 09 09 2f 2a 20 75 70 |se {....|.../* up|
|000025e0| 6c 6f 61 64 20 2a 2f 0d | 09 09 65 6d 64 70 2d 3e |load */.|..emdp->|
|000025f0| 66 74 33 32 37 30 5f 62 | 75 66 66 5b 30 5d 20 3d |ft3270_b|uff[0] =|
|00002600| 20 52 45 4e 54 45 52 3b | 0d 09 09 66 6f 72 20 28 | RENTER;|...for (|
|00002610| 65 6d 64 70 2d 3e 75 70 | 6c 6f 61 64 5f 63 6e 74 |emdp->up|load_cnt|
|00002620| 20 3d 20 31 3b 20 65 6d | 64 70 2d 3e 75 70 6c 6f | = 1; em|dp->uplo|
|00002630| 61 64 5f 63 6e 74 20 3c | 3d 20 65 6d 64 70 2d 3e |ad_cnt <|= emdp->|
|00002640| 66 74 6c 65 6e 3b 20 65 | 6d 64 70 2d 3e 66 74 70 |ftlen; e|mdp->ftp|
|00002650| 74 72 2b 2b 2c 20 65 6d | 64 70 2d 3e 66 74 63 6e |tr++, em|dp->ftcn|
|00002660| 74 2d 2d 29 20 7b 0d 09 | 09 09 69 66 20 28 65 6d |t--) {..|..if (em|
|00002670| 64 70 2d 3e 66 74 63 6e | 74 20 3d 3d 20 30 29 20 |dp->ftcn|t == 0) |
|00002680| 7b 0d 09 09 09 09 69 66 | 20 28 28 65 6d 64 70 2d |{.....if| ((emdp-|
|00002690| 3e 66 74 63 6e 74 20 3d | 20 66 72 65 61 64 20 28 |>ftcnt =| fread (|
|000026a0| 65 6d 64 70 2d 3e 66 74 | 70 74 72 20 3d 20 65 6d |emdp->ft|ptr = em|
|000026b0| 64 70 2d 3e 66 74 62 75 | 66 66 2c 20 31 2c 20 44 |dp->ftbu|ff, 1, D|
|000026c0| 4f 53 4c 45 4e 2c 20 65 | 6d 64 70 2d 3e 66 74 31 |OSLEN, e|mdp->ft1|
|000026d0| 29 29 20 3d 3d 20 30 29 | 20 7b 0d 09 09 09 09 09 |)) == 0)| {......|
|000026e0| 65 6d 64 70 2d 3e 66 74 | 5f 66 6c 61 67 20 7c 3d |emdp->ft|_flag |=|
|000026f0| 20 46 45 4f 46 3b 0d 09 | 09 09 09 09 62 72 65 61 | FEOF;..|....brea|
|00002700| 6b 3b 0d 09 09 09 09 7d | 0d 09 09 09 7d 0d 09 09 |k;.....}|....}...|
|00002710| 09 69 66 20 28 65 6d 64 | 70 2d 3e 66 74 5f 66 6c |.if (emd|p->ft_fl|
|00002720| 61 67 20 26 20 46 54 41 | 53 43 49 49 29 20 7b 0d |ag & FTA|SCII) {.|
|00002730| 09 09 09 09 2f 2a 20 69 | 66 20 28 2a 65 6d 64 70 |..../* i|f (*emdp|
|00002740| 2d 3e 66 74 70 74 72 20 | 3d 3d 20 30 78 31 61 20 |->ftptr |== 0x1a |
|00002750| 7c 7c 20 2a 65 6d 64 70 | 2d 3e 66 74 70 74 72 20 ||| *emdp|->ftptr |
|00002760| 3d 3d 20 30 78 30 64 29 | 3b 09 20 69 67 6e 6f 72 |== 0x0d)|;. ignor|
|00002770| 65 20 43 52 20 26 20 45 | 4f 46 20 4e 4f 54 20 4f |e CR & E|OF NOT O|
|00002780| 4e 20 54 48 45 20 4d 41 | 43 2d 2d 6b 65 76 69 6e |N THE MA|C--kevin|
|00002790| 2a 2f 0d 09 09 09 09 69 | 66 20 28 2a 65 6d 64 70 |*/.....i|f (*emdp|
|000027a0| 2d 3e 66 74 70 74 72 20 | 3d 3d 20 30 78 30 64 29 |->ftptr |== 0x0d)|
|000027b0| 0d 09 09 09 09 09 65 6d | 64 70 2d 3e 66 74 33 32 |......em|dp->ft32|
|000027c0| 37 30 5f 62 75 66 66 5b | 65 6d 64 70 2d 3e 75 70 |70_buff[|emdp->up|
|000027d0| 6c 6f 61 64 5f 63 6e 74 | 2b 2b 5d 20 3d 20 30 78 |load_cnt|++] = 0x|
|000027e0| 30 61 3b 09 09 2f 2a 20 | 43 52 20 2d 3e 20 4c 46 |0a;../* |CR -> LF|
|000027f0| 20 66 6f 72 20 75 70 6c | 6f 61 64 20 6f 6e 20 74 | for upl|oad on t|
|00002800| 68 65 20 4d 61 63 20 2a | 2f 0d 09 09 09 09 65 6c |he Mac *|/.....el|
|00002810| 73 65 0d 09 09 09 09 09 | 65 6d 64 70 2d 3e 66 74 |se......|emdp->ft|
|00002820| 33 32 37 30 5f 62 75 66 | 66 5b 65 6d 64 70 2d 3e |3270_buf|f[emdp->|
|00002830| 75 70 6c 6f 61 64 5f 63 | 6e 74 2b 2b 5d 20 3d 20 |upload_c|nt++] = |
|00002840| 2a 65 6d 64 70 2d 3e 66 | 74 70 74 72 3b 0d 09 09 |*emdp->f|tptr;...|
|00002850| 09 09 2f 2a 20 54 4f 44 | 4f 20 43 52 2d 4c 46 3f |../* TOD|O CR-LF?|
|00002860| 3f 3f 20 2a 2f 0d 09 09 | 09 7d 0d 09 09 09 65 6c |?? */...|.}....el|
|00002870| 73 65 0d 09 09 09 09 65 | 6d 64 70 2d 3e 66 74 33 |se.....e|mdp->ft3|
|00002880| 32 37 30 5f 62 75 66 66 | 5b 65 6d 64 70 2d 3e 75 |270_buff|[emdp->u|
|00002890| 70 6c 6f 61 64 5f 63 6e | 74 2b 2b 5d 20 3d 20 2a |pload_cn|t++] = *|
|000028a0| 65 6d 64 70 2d 3e 66 74 | 70 74 72 3b 0d 09 09 7d |emdp->ft|ptr;...}|
|000028b0| 09 09 09 09 09 09 09 20 | 2f 2a 20 2e 2e 2e 2e 65 |....... |/* ....e|
|000028c0| 6e 64 20 6f 66 20 66 6f | 72 20 6c 6f 6f 70 20 2a |nd of fo|r loop *|
|000028d0| 2f 0d 09 09 65 6d 64 70 | 2d 3e 66 74 78 66 65 72 |/...emdp|->ftxfer|
|000028e0| 65 64 20 2b 3d 20 28 65 | 6d 64 70 2d 3e 75 70 6c |ed += (e|mdp->upl|
|000028f0| 6f 61 64 5f 63 6e 74 20 | 2d 20 31 29 3b 0d 09 09 |oad_cnt |- 1);...|
|00002900| 66 74 5f 75 70 6c 6f 61 | 64 28 65 6d 64 70 2d 3e |ft_uploa|d(emdp->|
|00002910| 66 74 33 32 37 30 5f 62 | 75 66 66 2c 20 65 6d 64 |ft3270_b|uff, emd|
|00002920| 70 2d 3e 75 70 6c 6f 61 | 64 5f 63 6e 74 29 3b 0d |p->uploa|d_cnt);.|
|00002930| 09 7d 0d 09 62 79 74 65 | 5f 6f 75 74 20 28 65 6d |.}..byte|_out (em|
|00002940| 64 70 2d 3e 66 74 78 66 | 65 72 65 64 2c 20 31 34 |dp->ftxf|ered, 14|
|00002950| 29 3b 0d 7d 09 09 09 09 | 09 09 09 09 09 09 09 09 |);.}....|........|
|00002960| 20 2f 2a 20 65 6e 64 20 | 6f 66 20 66 74 33 31 37 | /* end |of ft317|
|00002970| 30 20 73 75 62 72 6f 75 | 74 69 6e 65 20 2a 2f 0d |0 subrou|tine */.|
|00002980| 0d 0d 2f 2a 20 72 65 74 | 75 72 6e 20 69 6e 64 65 |../* ret|urn inde|
|00002990| 78 20 6f 66 20 70 61 73 | 73 65 64 20 63 68 61 72 |x of pas|sed char|
|000029a0| 61 63 74 65 72 20 6f 72 | 20 2d 31 20 69 66 20 6e |acter or| -1 if n|
|000029b0| 6f 74 20 70 72 65 73 65 | 6e 74 20 2a 2f 0d 0d 66 |ot prese|nt */..f|
|000029c0| 74 5f 73 63 61 6e 28 63 | 68 61 72 70 2c 20 74 68 |t_scan(c|harp, th|
|000029d0| 65 63 68 61 72 2c 20 6c | 65 6e 29 0d 72 65 67 69 |echar, l|en).regi|
|000029e0| 73 74 65 72 20 63 68 61 | 72 20 2a 20 63 68 61 72 |ster cha|r * char|
|000029f0| 70 3b 0d 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |p;.regis|ter char|
|00002a00| 20 74 68 65 63 68 61 72 | 3b 0d 72 65 67 69 73 74 | thechar|;.regist|
|00002a10| 65 72 20 69 6e 74 20 6c | 65 6e 3b 0d 7b 0d 09 69 |er int l|en;.{..i|
|00002a20| 6e 74 20 74 68 65 6c 65 | 6e 3b 0d 0d 09 74 68 65 |nt thele|n;...the|
|00002a30| 6c 65 6e 20 3d 20 6c 65 | 6e 3b 0d 09 66 6f 72 20 |len = le|n;..for |
|00002a40| 28 20 3b 20 6c 65 6e 20 | 3e 20 30 20 26 26 20 2a |( ; len |> 0 && *|
|00002a50| 63 68 61 72 70 2b 2b 20 | 21 3d 20 74 68 65 63 68 |charp++ |!= thech|
|00002a60| 61 72 20 3b 20 2d 2d 6c | 65 6e 29 20 0d 09 09 3b |ar ; --l|en) ...;|
|00002a70| 0d 09 69 66 20 28 6c 65 | 6e 29 0d 09 09 72 65 74 |..if (le|n)...ret|
|00002a80| 75 72 6e 28 74 68 65 6c | 65 6e 20 2d 20 6c 65 6e |urn(thel|en - len|
|00002a90| 29 3b 0d 09 65 6c 73 65 | 0d 09 09 72 65 74 75 72 |);..else|...retur|
|00002aa0| 6e 28 2d 31 29 3b 0d 7d | 0d 0d 0d 0d 2f 2a 20 72 |n(-1);.}|..../* r|
|00002ab0| 65 70 65 61 74 65 64 6c | 79 20 72 65 73 74 6f 72 |epeatedl|y restor|
|00002ac0| 65 20 74 68 65 20 68 69 | 67 68 20 6f 72 64 65 72 |e the hi|gh order|
|00002ad0| 20 62 69 74 73 20 66 72 | 6f 6d 20 38 74 68 20 62 | bits fr|om 8th b|
|00002ae0| 79 74 65 20 74 6f 20 37 | 20 70 72 65 76 69 6f 75 |yte to 7| previou|
|00002af0| 73 20 62 79 74 65 73 20 | 2a 2f 0d 0d 62 69 74 5f |s bytes |*/..bit_|
|00002b00| 72 65 73 74 28 66 72 6f | 6d 2c 20 74 6f 2c 20 6c |rest(fro|m, to, l|
|00002b10| 65 6e 29 0d 72 65 67 69 | 73 74 65 72 20 63 68 61 |en).regi|ster cha|
|00002b20| 72 20 2a 20 66 72 6f 6d | 3b 0d 72 65 67 69 73 74 |r * from|;.regist|
|00002b30| 65 72 20 63 68 61 72 20 | 2a 20 74 6f 3b 0d 69 6e |er char |* to;.in|
|00002b40| 74 20 6c 65 6e 3b 0d 7b | 0d 09 72 65 67 69 73 74 |t len;.{|..regist|
|00002b50| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |er unsig|ned char|
|00002b60| 20 68 69 67 68 62 69 74 | 73 3b 0d 09 72 65 67 69 | highbit|s;..regi|
|00002b70| 73 74 65 72 20 69 6e 74 | 20 63 6f 75 6e 74 3b 0d |ster int| count;.|
|00002b80| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 6e 65 |.registe|r int ne|
|00002b90| 77 6c 65 6e 3b 0d 0d 09 | 6e 65 77 6c 65 6e 20 3d |wlen;...|newlen =|
|00002ba0| 20 30 3b 0d 09 66 6f 72 | 20 28 20 3b 20 6c 65 6e | 0;..for| ( ; len|
|00002bb0| 20 3e 20 30 3b 20 6c 65 | 6e 20 2d 3d 20 38 2c 20 | > 0; le|n -= 8, |
|00002bc0| 66 72 6f 6d 2b 2b 29 20 | 7b 0d 09 09 69 66 20 28 |from++) |{...if (|
|00002bd0| 6c 65 6e 20 3c 20 38 29 | 0d 09 09 09 63 6f 75 6e |len < 8)|....coun|
|00002be0| 74 20 3d 20 6c 65 6e 20 | 2d 20 31 3b 0d 09 09 65 |t = len |- 1;...e|
|00002bf0| 6c 73 65 0d 09 09 09 63 | 6f 75 6e 74 20 3d 20 37 |lse....c|ount = 7|
|00002c00| 3b 0d 09 09 68 69 67 68 | 62 69 74 73 20 3d 20 2a |;...high|bits = *|
|00002c10| 28 66 72 6f 6d 20 2b 20 | 63 6f 75 6e 74 29 3b 0d |(from + |count);.|
|00002c20| 09 09 6e 65 77 6c 65 6e | 20 2b 3d 20 63 6f 75 6e |..newlen| += coun|
|00002c30| 74 3b 0d 09 09 77 68 69 | 6c 65 20 28 2d 2d 63 6f |t;...whi|le (--co|
|00002c40| 75 6e 74 20 3e 3d 20 30 | 29 20 7b 0d 09 09 09 2f |unt >= 0|) {..../|
|00002c50| 2a 20 4e 6f 74 65 20 74 | 68 61 74 20 74 68 65 20 |* Note t|hat the |
|00002c60| 62 69 74 73 20 66 6f 72 | 20 66 69 6e 61 6c 20 73 |bits for| final s|
|00002c70| 65 71 75 65 6e 63 65 73 | 20 3c 20 38 20 77 69 6e |equences| < 8 win|
|00002c80| 64 20 75 70 20 69 6e 20 | 64 69 66 66 65 72 65 6e |d up in |differen|
|00002c90| 74 20 70 6c 61 63 65 73 | 20 2a 2f 0d 09 09 09 69 |t places| */....i|
|00002ca0| 66 20 28 68 69 67 68 62 | 69 74 73 20 26 20 30 78 |f (highb|its & 0x|
|00002cb0| 30 31 29 0d 09 09 09 09 | 2a 74 6f 2b 2b 20 3d 20 |01).....|*to++ = |
|00002cc0| 2a 66 72 6f 6d 2b 2b 20 | 7c 20 30 78 38 30 3b 0d |*from++ || 0x80;.|
|00002cd0| 09 09 09 65 6c 73 65 0d | 09 09 09 09 2a 74 6f 2b |...else.|....*to+|
|00002ce0| 2b 20 3d 20 2a 66 72 6f | 6d 2b 2b 3b 0d 09 09 09 |+ = *fro|m++;....|
|00002cf0| 68 69 67 68 62 69 74 73 | 20 3e 3e 3d 20 31 3b 0d |highbits| >>= 1;.|
|00002d00| 09 09 7d 0d 09 7d 0d 09 | 72 65 74 75 72 6e 28 6e |..}..}..|return(n|
|00002d10| 65 77 6c 65 6e 29 3b 0d | 7d 0d 0d 2f 2a 20 72 65 |ewlen);.|}../* re|
|00002d20| 70 65 61 74 65 64 6c 79 | 20 74 61 6b 65 20 74 68 |peatedly| take th|
|00002d30| 65 20 68 69 67 68 20 6f | 72 64 65 72 20 62 69 74 |e high o|rder bit|
|00002d40| 73 20 66 72 6f 6d 20 37 | 20 63 6f 6e 73 65 63 75 |s from 7| consecu|
|00002d50| 74 69 76 65 20 62 79 74 | 65 73 20 26 20 73 74 6f |tive byt|es & sto|
|00002d60| 72 65 20 74 68 65 6d 20 | 69 6e 20 38 74 68 20 62 |re them |in 8th b|
|00002d70| 79 74 65 20 2a 2f 0d 0d | 0d 62 69 74 5f 73 74 72 |yte */..|.bit_str|
|00002d80| 69 70 28 66 72 6f 6d 2c | 20 74 6f 2c 20 6c 65 6e |ip(from,| to, len|
|00002d90| 29 0d 72 65 67 69 73 74 | 65 72 20 63 68 61 72 20 |).regist|er char |
|00002da0| 2a 20 66 72 6f 6d 3b 0d | 72 65 67 69 73 74 65 72 |* from;.|register|
|00002db0| 20 63 68 61 72 20 2a 20 | 74 6f 3b 0d 69 6e 74 20 | char * |to;.int |
|00002dc0| 6c 65 6e 3b 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |len;.{..|register|
|00002dd0| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 2a | unsigne|d char *|
|00002de0| 20 68 69 67 68 62 69 74 | 73 3b 0d 09 72 65 67 69 | highbit|s;..regi|
|00002df0| 73 74 65 72 20 69 6e 74 | 20 63 6f 75 6e 74 3b 0d |ster int| count;.|
|00002e00| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 6e 65 |.registe|r int ne|
|00002e10| 77 6c 65 6e 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |wlen;..r|egister |
|00002e20| 63 68 61 72 20 66 72 6f | 6d 62 79 74 65 3b 0d 0d |char fro|mbyte;..|
|00002e30| 09 6e 65 77 6c 65 6e 20 | 3d 20 30 3b 0d 09 66 6f |.newlen |= 0;..fo|
|00002e40| 72 20 28 20 3b 20 6c 65 | 6e 20 3e 20 30 3b 20 6c |r ( ; le|n > 0; l|
|00002e50| 65 6e 20 2d 3d 20 37 2c | 20 74 6f 2b 2b 29 20 7b |en -= 7,| to++) {|
|00002e60| 0d 09 09 2f 2a 20 6f 75 | 74 73 69 64 65 20 6c 6f |.../* ou|tside lo|
|00002e70| 6f 70 3a 20 20 67 65 74 | 20 74 68 65 20 68 69 67 |op: get| the hig|
|00002e80| 68 20 62 69 74 20 6d 61 | 72 6b 65 72 20 66 6f 72 |h bit ma|rker for|
|00002e90| 20 31 2d 37 20 62 79 74 | 65 73 20 72 65 70 65 61 | 1-7 byt|es repea|
|00002ea0| 74 65 64 6c 79 20 2a 2f | 0d 09 09 69 66 20 28 6c |tedly */|...if (l|
|00002eb0| 65 6e 20 3c 20 37 29 0d | 09 09 09 63 6f 75 6e 74 |en < 7).|...count|
|00002ec0| 20 3d 20 6c 65 6e 3b 0d | 09 09 65 6c 73 65 0d 09 | = len;.|..else..|
|00002ed0| 09 09 63 6f 75 6e 74 20 | 3d 20 37 3b 0d 09 09 68 |..count |= 7;...h|
|00002ee0| 69 67 68 62 69 74 73 20 | 3d 20 74 6f 20 2b 20 63 |ighbits |= to + c|
|00002ef0| 6f 75 6e 74 3b 0d 09 09 | 2a 68 69 67 68 62 69 74 |ount;...|*highbit|
|00002f00| 73 20 3d 20 30 3b 0d 09 | 09 6e 65 77 6c 65 6e 20 |s = 0;..|.newlen |
|00002f10| 2b 3d 20 63 6f 75 6e 74 | 20 2b 20 31 3b 0d 09 09 |+= count| + 1;...|
|00002f20| 77 68 69 6c 65 20 28 2d | 2d 63 6f 75 6e 74 20 3e |while (-|-count >|
|00002f30| 3d 20 30 29 20 7b 0d 09 | 09 09 66 72 6f 6d 62 79 |= 0) {..|..fromby|
|00002f40| 74 65 20 3d 20 2a 66 72 | 6f 6d 2b 2b 3b 0d 09 09 |te = *fr|om++;...|
|00002f50| 09 69 66 20 28 66 72 6f | 6d 62 79 74 65 20 26 20 |.if (fro|mbyte & |
|00002f60| 30 78 38 30 29 20 7b 0d | 09 09 09 09 66 72 6f 6d |0x80) {.|....from|
|00002f70| 62 79 74 65 20 26 3d 20 | 30 78 37 66 3b 0d 09 09 |byte &= |0x7f;...|
|00002f80| 09 09 2a 68 69 67 68 62 | 69 74 73 20 7c 3d 20 30 |..*highb|its |= 0|
|00002f90| 78 38 30 3b 0d 09 09 09 | 7d 0d 09 09 09 2a 74 6f |x80;....|}....*to|
|00002fa0| 2b 2b 20 3d 20 66 72 6f | 6d 62 79 74 65 3b 0d 09 |++ = fro|mbyte;..|
|00002fb0| 09 09 2a 68 69 67 68 62 | 69 74 73 20 3e 3e 3d 20 |..*highb|its >>= |
|00002fc0| 31 3b 0d 09 09 7d 0d 09 | 09 69 66 20 28 6c 65 6e |1;...}..|.if (len|
|00002fd0| 20 3c 20 37 29 0d 09 09 | 09 2a 68 69 67 68 62 69 | < 7)...|.*highbi|
|00002fe0| 74 73 20 3e 3e 3d 20 37 | 20 2d 20 6c 65 6e 3b 0d |ts >>= 7| - len;.|
|00002ff0| 09 7d 0d 09 72 65 74 75 | 72 6e 28 6e 65 77 6c 65 |.}..retu|rn(newle|
|00003000| 6e 29 3b 0d 7d 0d 0d 0d | 2f 2a 2a 2a 2a 2a 2a 2a |n);.}...|/*******|
|00003010| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003030| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003040| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003050| 2a 2a 2a 2a 0d 2a 2a 2a | 2a 20 20 20 20 20 20 20 |****.***|* |
|00003060| 20 20 20 33 32 37 30 20 | 46 69 6c 65 20 54 72 61 | 3270 |File Tra|
|00003070| 6e 73 66 65 72 20 4e 65 | 67 6f 74 69 61 74 69 6f |nsfer Ne|gotiatio|
|00003080| 6e 20 26 20 55 74 69 6c | 69 74 79 20 52 6f 75 74 |n & Util|ity Rout|
|00003090| 69 6e 65 73 20 20 20 20 | 20 20 20 20 20 2a 2a 2a |ines | ***|
|000030a0| 2a 0d 2a 2a 2a 2a 20 20 | 20 20 20 20 20 20 20 20 |*.**** | |
|000030b0| 77 72 69 74 74 65 6e 20 | 62 79 20 50 65 74 65 72 |written |by Peter|
|000030c0| 20 48 6f 79 74 2c 20 43 | 6f 72 6e 65 6c 6c 20 43 | Hoyt, C|ornell C|
|000030d0| 6f 6d 70 75 74 65 72 20 | 53 65 72 76 69 63 65 73 |omputer |Services|
|000030e0| 20 20 20 20 20 20 20 20 | 20 20 2a 2a 2a 2a 0d 2a | | ****.*|
|000030f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003100| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003110| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003130| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0d 0d 0d 2f 2a |********|**/.../*|
|00003140| 20 69 6e 69 74 69 61 6c | 69 7a 65 20 72 6f 75 74 | initial|ize rout|
|00003150| 69 6e 65 20 66 6f 72 20 | 66 69 6c 65 20 74 72 61 |ine for |file tra|
|00003160| 6e 73 66 65 72 3a 0d 20 | 2a 20 20 20 20 70 74 72 |nsfer:. |* ptr|
|00003170| 20 70 6f 69 6e 74 73 20 | 74 6f 20 61 20 33 32 20 | points |to a 32 |
|00003180| 62 69 74 20 75 6e 73 69 | 67 6e 65 64 20 28 68 69 |bit unsi|gned (hi|
|00003190| 67 68 20 62 79 74 65 73 | 20 66 69 72 73 74 29 20 |gh bytes| first) |
|000031a0| 6c 65 6e 67 74 68 20 69 | 6e 20 62 79 74 65 73 0d |length i|n bytes.|
|000031b0| 20 2a 20 20 20 20 62 65 | 79 6f 6e 64 20 74 68 61 | * be|yond tha|
|000031c0| 74 20 69 73 20 61 20 6f | 6e 65 20 62 79 74 65 20 |t is a o|ne byte |
|000031d0| 65 78 74 72 61 20 66 69 | 65 6c 64 0d 20 2a 20 20 |extra fi|eld. * |
|000031e0| 20 20 20 20 62 69 74 20 | 30 3a 20 72 65 70 6c 61 | bit |0: repla|
|000031f0| 63 65 20 66 69 6c 65 6e | 61 6d 65 20 69 66 20 69 |ce filen|ame if i|
|00003200| 74 20 61 6c 72 65 61 64 | 79 20 65 78 69 73 74 73 |t alread|y exists|
|00003210| 0d 20 2a 20 20 20 20 20 | 20 62 69 74 20 31 3a 20 |. * | bit 1: |
|00003220| 61 73 63 69 69 2f 65 62 | 63 64 69 63 20 63 6f 6e |ascii/eb|cdic con|
|00003230| 76 65 72 73 69 6f 6e 0d | 20 2a 20 20 20 20 20 20 |version.| * |
|00003240| 62 69 74 20 32 3a 20 75 | 73 65 20 64 65 66 61 75 |bit 2: u|se defau|
|00003250| 6c 74 20 62 69 6e 61 72 | 79 20 66 69 6c 65 6e 61 |lt binar|y filena|
|00003260| 6d 65 20 65 78 74 65 6e | 73 69 6f 6e 73 0d 20 2a |me exten|sions. *|
|00003270| 20 20 20 20 62 65 79 6f | 6e 64 20 74 68 61 74 20 | beyo|nd that |
|00003280| 69 73 20 74 68 65 20 70 | 61 74 68 20 73 70 65 63 |is the p|ath spec|
|00003290| 20 74 65 72 6d 69 6e 61 | 74 65 64 20 62 79 20 61 | termina|ted by a|
|000032a0| 20 62 69 6e 61 72 79 20 | 7a 65 72 6f 0d 20 2a 2f | binary |zero. */|
|000032b0| 0d 0d 66 74 6e 65 67 6f | 28 70 74 72 29 0d 75 6e |..ftnego|(ptr).un|
|000032c0| 73 69 67 6e 65 64 20 63 | 68 61 72 20 2a 70 74 72 |signed c|har *ptr|
|000032d0| 3b 0d 20 20 20 7b 0d 20 | 20 20 75 6e 73 69 67 6e |;. {. | unsign|
|000032e0| 65 64 20 63 68 61 72 20 | 64 69 72 65 63 74 69 6f |ed char |directio|
|000032f0| 6e 2c 20 2a 66 74 79 70 | 65 3b 0d 20 20 20 75 6e |n, *ftyp|e;. un|
|00003300| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 6c 65 6e 67 |signed l|ong leng|
|00003310| 74 68 2c 20 61 76 61 69 | 6c 3b 0d 20 20 20 69 6e |th, avai|l;. in|
|00003320| 74 20 69 2c 20 6a 3b 0d | 20 20 20 75 6e 69 6f 6e |t i, j;.| union|
|00003330| 20 7b 0d 20 20 20 20 20 | 20 75 6e 73 69 67 6e 65 | {. | unsigne|
|00003340| 64 20 6c 6f 6e 67 20 5f | 6c 3b 0d 20 20 20 20 20 |d long _|l;. |
|00003350| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 5f | unsigne|d char _|
|00003360| 63 5b 34 5d 3b 0d 20 20 | 20 20 20 20 7d 20 66 6f |c[4];. | } fo|
|00003370| 6f 3b 0d 09 63 68 61 72 | 20 2a 20 66 74 6e 61 6d |o;..char| * ftnam|
|00003380| 65 70 3b 0d 0d 20 20 20 | 64 69 72 65 63 74 69 6f |ep;.. |directio|
|00003390| 6e 20 3d 20 2a 70 74 72 | 2b 2b 3b 0d 20 20 20 66 |n = *ptr|++;. f|
|000033a0| 6f 72 20 28 6c 65 6e 67 | 74 68 20 3d 20 30 2c 20 |or (leng|th = 0, |
|000033b0| 69 20 3d 20 30 3b 20 69 | 20 3c 20 34 3b 20 69 2b |i = 0; i| < 4; i+|
|000033c0| 2b 29 0d 20 20 20 20 20 | 20 6c 65 6e 67 74 68 20 |+). | length |
|000033d0| 3d 20 28 6c 65 6e 67 74 | 68 20 3c 3c 20 38 29 20 |= (lengt|h << 8) |
|000033e0| 2b 20 28 2a 70 74 72 2b | 2b 29 3b 0d 20 20 20 65 |+ (*ptr+|+);. e|
|000033f0| 6d 64 70 2d 3e 65 78 74 | 72 61 20 20 3d 20 2a 70 |mdp->ext|ra = *p|
|00003400| 74 72 3b 0d 20 20 20 66 | 74 6e 61 6d 65 70 20 3d |tr;. f|tnamep =|
|00003410| 20 2b 2b 70 74 72 3b 20 | 20 20 20 20 20 20 20 20 | ++ptr; | |
|00003420| 20 20 20 20 20 20 2f 2a | 20 70 74 72 20 6e 6f 77 | /*| ptr now|
|00003430| 20 70 6f 69 6e 74 73 20 | 74 6f 20 70 61 74 68 20 | points |to path |
|00003440| 73 70 65 63 20 2a 2f 0d | 0d 20 20 20 2f 2a 20 63 |spec */.|. /* c|
|00003450| 6f 6e 76 65 72 74 20 66 | 69 6c 65 73 70 65 63 20 |onvert f|ilespec |
|00003460| 74 6f 20 61 73 63 69 69 | 20 61 6e 64 20 69 73 6f |to ascii| and iso|
|00003470| 6c 61 74 65 20 66 69 6c | 65 6e 61 6d 65 20 65 78 |late fil|ename ex|
|00003480| 74 65 6e 73 69 6f 6e 20 | 2a 2f 0d 20 20 20 66 6f |tension |*/. fo|
|00003490| 72 20 28 66 74 79 70 65 | 20 3d 20 30 2c 20 65 6d |r (ftype| = 0, em|
|000034a0| 64 70 2d 3e 66 6e 61 6d | 65 6c 65 6e 20 3d 20 30 |dp->fnam|elen = 0|
|000034b0| 3b 20 2a 70 74 72 3b 20 | 65 6d 64 70 2d 3e 66 6e |; *ptr; |emdp->fn|
|000034c0| 61 6d 65 6c 65 6e 2b 2b | 2c 20 70 74 72 2b 2b 29 |amelen++|, ptr++)|
|000034d0| 0d 20 20 20 20 20 20 69 | 66 20 28 28 2a 70 74 72 |. i|f ((*ptr|
|000034e0| 20 3d 20 2a 28 65 62 63 | 74 6f 61 73 63 20 2b 20 | = *(ebc|toasc + |
|000034f0| 2a 70 74 72 29 29 20 3d | 3d 20 27 2e 27 29 20 66 |*ptr)) =|= '.') f|
|00003500| 74 79 70 65 20 3d 20 70 | 74 72 20 2b 20 31 3b 0d |type = p|tr + 1;.|
|00003510| 0d 23 69 66 6e 64 65 66 | 20 50 43 0d 09 2f 2a 20 |.#ifndef| PC../* |
|00003520| 72 65 69 6e 74 65 72 70 | 72 65 74 20 74 68 65 20 |reinterp|ret the |
|00003530| 70 61 74 68 6e 61 6d 65 | 20 66 6f 72 20 74 68 65 |pathname| for the|
|00003540| 20 6d 61 63 69 6e 74 6f | 73 68 20 2a 2f 0d 09 0d | macinto|sh */...|
|00003550| 09 65 6d 64 70 2d 3e 66 | 74 6e 61 6d 65 20 3d 20 |.emdp->f|tname = |
|00003560| 6d 61 6c 6c 6f 63 28 28 | 75 6e 73 69 67 6e 65 64 |malloc((|unsigned|
|00003570| 29 20 73 74 72 6c 65 6e | 28 66 74 6e 61 6d 65 70 |) strlen|(ftnamep|
|00003580| 29 20 2b 20 31 29 3b 0d | 09 6d 61 63 70 61 74 68 |) + 1);.|.macpath|
|00003590| 28 66 74 6e 61 6d 65 70 | 2c 20 65 6d 64 70 2d 3e |(ftnamep|, emdp->|
|000035a0| 66 74 6e 61 6d 65 29 3b | 0d 20 20 20 20 6d 61 63 |ftname);|. mac|
|000035b0| 5f 73 65 74 64 6f 77 6e | 76 6f 6c 28 29 3b 09 2f |_setdown|vol();./|
|000035c0| 2a 20 66 69 78 20 74 68 | 65 20 64 69 72 65 63 74 |* fix th|e direct|
|000035d0| 6f 72 79 20 66 6f 72 20 | 6d 75 6c 74 69 70 6c 65 |ory for |multiple|
|000035e0| 20 73 65 73 73 69 6f 6e | 73 20 2a 2f 0d 20 20 0d | session|s */. .|
|000035f0| 23 65 6e 64 69 66 0d 0d | 0d 20 20 20 65 6d 64 70 |#endif..|. emdp|
|00003600| 2d 3e 61 63 6b 5f 62 75 | 66 66 5b 30 5d 20 3d 20 |->ack_bu|ff[0] = |
|00003610| 52 45 4e 54 45 52 3b 20 | 20 20 20 20 20 20 20 20 |RENTER; | |
|00003620| 20 20 2f 2a 20 69 66 20 | 61 6c 6c 20 67 6f 65 73 | /* if |all goes|
|00003630| 20 77 65 6c 6c 20 61 63 | 6b 20 77 69 74 68 20 52 | well ac|k with R|
|00003640| 45 4e 54 45 52 20 2a 2f | 0d 0d 20 20 20 65 6d 64 |ENTER */|.. emd|
|00003650| 70 2d 3e 66 74 5f 66 6c | 61 67 20 7c 3d 20 28 65 |p->ft_fl|ag |= (e|
|00003660| 6d 64 70 2d 3e 65 78 74 | 72 61 20 26 20 43 4f 4e |mdp->ext|ra & CON|
|00003670| 56 29 3b 20 20 20 20 2f | 2a 20 43 4f 4e 56 20 62 |V); /|* CONV b|
|00003680| 69 74 20 74 75 72 6e 73 | 20 6f 6e 20 46 54 41 53 |it turns| on FTAS|
|00003690| 43 49 49 20 66 6c 61 67 | 20 2a 2f 0d 20 20 20 69 |CII flag| */. i|
|000036a0| 66 20 28 65 6d 64 70 2d | 3e 65 78 74 72 61 20 26 |f (emdp-|>extra &|
|000036b0| 20 4c 4f 4f 4b 55 50 29 | 20 7b 20 20 20 20 20 20 | LOOKUP)| { |
|000036c0| 20 20 20 2f 2a 20 6c 65 | 74 20 70 63 20 64 65 74 | /* le|t pc det|
|000036d0| 65 72 6d 69 6e 65 20 64 | 65 66 61 75 6c 74 73 20 |ermine d|efaults |
|000036e0| 2a 2f 0d 20 20 20 20 20 | 20 65 6d 64 70 2d 3e 66 |*/. | emdp->f|
|000036f0| 74 5f 66 6c 61 67 20 26 | 3d 20 7e 46 54 41 53 43 |t_flag &|= ~FTASC|
|00003700| 49 49 3b 20 20 20 20 20 | 20 20 20 20 2f 2a 20 63 |II; | /* c|
|00003710| 6c 65 61 72 20 63 6f 6e | 76 65 72 73 69 6f 6e 20 |lear con|version |
|00003720| 62 69 74 20 2a 2f 0d 09 | 20 20 0d 09 20 20 2f 2a |bit */..| .. /*|
|00003730| 20 6f 6e 6c 79 20 74 68 | 65 20 50 43 20 76 65 72 | only th|e PC ver|
|00003740| 73 69 6f 6e 20 68 61 73 | 20 74 68 69 73 20 63 6f |sion has| this co|
|00003750| 64 65 2e 2e 2e 20 2a 2f | 0d 09 20 09 65 6d 64 70 |de... */|.. .emdp|
|00003760| 2d 3e 66 74 5f 66 6c 61 | 67 20 7c 3d 20 46 54 41 |->ft_fla|g |= FTA|
|00003770| 53 43 49 49 3b 09 09 09 | 09 09 2f 2a 20 6e 6f 20 |SCII;...|../* no |
|00003780| 74 61 62 6c 65 20 6d 61 | 74 63 68 3a 20 64 6f 20 |table ma|tch: do |
|00003790| 63 6f 6e 76 65 72 73 69 | 6f 6e 20 2a 2f 0d 20 20 |conversi|on */. |
|000037a0| 20 20 20 20 65 6d 64 70 | 2d 3e 61 63 6b 5f 62 75 | emdp|->ack_bu|
|000037b0| 66 66 5b 31 5d 20 3d 20 | 65 6d 64 70 2d 3e 66 74 |ff[1] = |emdp->ft|
|000037c0| 5f 66 6c 61 67 20 26 20 | 46 54 41 53 43 49 49 3b |_flag & |FTASCII;|
|000037d0| 20 20 20 20 20 20 20 2f | 2a 20 72 65 74 75 72 6e | /|* return|
|000037e0| 20 6e 6f 6e 20 7a 65 72 | 6f 20 69 66 20 6e 6f 20 | non zer|o if no |
|000037f0| 6d 61 74 63 68 20 2a 2f | 0d 20 20 20 7d 0d 20 20 |match */|. }. |
|00003800| 20 0d 20 20 20 69 66 20 | 28 64 69 72 65 63 74 69 | . if |(directi|
|00003810| 6f 6e 20 3d 3d 20 44 4f | 57 4e 4c 4f 41 44 29 20 |on == DO|WNLOAD) |
|00003820| 7b 0d 20 20 20 20 20 20 | 65 6d 64 70 2d 3e 66 74 |{. |emdp->ft|
|00003830| 5f 66 6c 61 67 20 7c 3d | 20 46 49 4c 45 52 43 56 |_flag |=| FILERCV|
|00003840| 3b 0d 20 20 20 20 20 20 | 65 6d 64 70 2d 3e 66 74 |;. |emdp->ft|
|00003850| 74 6f 74 61 6c 20 3d 20 | 6c 65 6e 67 74 68 3b 0d |total = |length;.|
|00003860| 20 20 20 20 20 20 69 66 | 20 28 65 6d 64 70 2d 3e | if| (emdp->|
|00003870| 65 78 74 72 61 20 26 20 | 52 45 50 29 20 20 20 20 |extra & |REP) |
|00003880| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003890| 20 20 2f 2a 20 72 65 70 | 6c 61 63 65 20 66 69 6c | /* rep|lace fil|
|000038a0| 65 20 6f 66 20 73 61 6d | 65 20 6e 61 6d 65 20 2a |e of sam|e name *|
|000038b0| 2f 0d 20 20 20 20 20 20 | 20 20 20 75 6e 6c 69 6e |/. | unlin|
|000038c0| 6b 28 65 6d 64 70 2d 3e | 66 74 6e 61 6d 65 29 3b |k(emdp->|ftname);|
|000038d0| 0d 20 20 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 |. e|lse if (|
|000038e0| 20 28 65 6d 64 70 2d 3e | 66 74 31 20 3d 20 66 6f | (emdp->|ft1 = fo|
|000038f0| 70 65 6e 20 28 65 6d 64 | 70 2d 3e 66 74 6e 61 6d |pen (emd|p->ftnam|
|00003900| 65 2c 20 22 72 22 29 29 | 20 21 3d 20 4e 55 4c 4c |e, "r"))| != NULL|
|00003910| 29 20 7b 20 0d 09 09 09 | 09 2f 2a 20 66 69 6c 65 |) { ....|./* file|
|00003920| 20 61 6c 72 65 61 64 79 | 20 65 78 69 73 74 73 20 | already| exists |
|00003930| 2a 2f 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 66 |*/. | f|
|00003940| 63 6c 6f 73 65 28 65 6d | 64 70 2d 3e 66 74 31 29 |close(em|dp->ft1)|
|00003950| 3b 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 |;. | re|
|00003960| 74 75 72 6e 28 52 50 46 | 31 29 3b 0d 20 20 20 20 |turn(RPF|1);. |
|00003970| 20 20 7d 0d 20 20 20 20 | 20 20 69 66 20 28 28 61 | }. | if ((a|
|00003980| 76 61 69 6c 20 3d 20 66 | 72 65 65 5f 73 70 20 28 |vail = f|ree_sp (|
|00003990| 65 6d 64 70 2d 3e 66 74 | 6e 61 6d 65 29 29 20 3d |emdp->ft|name)) =|
|000039a0| 3d 20 30 29 20 20 2f 2a | 20 73 65 65 20 69 66 20 |= 0) /*| see if |
|000039b0| 72 6f 6f 6d 20 6f 6e 20 | 64 69 73 6b 20 2a 2f 0d |room on |disk */.|
|000039c0| 20 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 | | return |
|000039d0| 28 52 50 46 32 29 3b 0d | 20 20 20 20 20 20 69 66 |(RPF2);.| if|
|000039e0| 20 28 61 76 61 69 6c 20 | 3c 20 6c 65 6e 67 74 68 | (avail |< length|
|000039f0| 29 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |) | |
|00003a00| 20 20 20 20 2f 2a 20 69 | 6e 73 75 66 66 69 63 69 | /* i|nsuffici|
|00003a10| 65 6e 74 20 73 70 61 63 | 65 20 2a 2f 0d 20 20 20 |ent spac|e */. |
|00003a20| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 28 52 50 | re|turn (RP|
|00003a30| 46 33 29 3b 0d 20 20 20 | 20 20 20 69 66 20 28 28 |F3);. | if ((|
|00003a40| 65 6d 64 70 2d 3e 66 74 | 31 20 3d 20 66 6f 70 65 |emdp->ft|1 = fope|
|00003a50| 6e 20 28 65 6d 64 70 2d | 3e 66 74 6e 61 6d 65 2c |n (emdp-|>ftname,|
|00003a60| 20 22 77 22 29 29 20 3d | 3d 20 30 29 20 2f 2a 20 | "w")) =|= 0) /* |
|00003a70| 6f 70 65 6e 20 66 6f 72 | 20 72 65 61 6c 20 6e 6f |open for| real no|
|00003a80| 77 20 2a 2f 0d 20 20 20 | 20 20 20 20 20 20 72 65 |w */. | re|
|00003a90| 74 75 72 6e 20 28 52 50 | 46 34 29 3b 0d 20 20 20 |turn (RP|F4);. |
|00003aa0| 20 20 20 66 74 5f 75 70 | 6c 6f 61 64 20 28 26 65 | ft_up|load (&e|
|00003ab0| 6d 64 70 2d 3e 61 63 6b | 5f 62 75 66 66 5b 30 5d |mdp->ack|_buff[0]|
|00003ac0| 2c 20 32 29 3b 0d 20 20 | 20 20 20 20 72 65 74 75 |, 2);. | retu|
|00003ad0| 72 6e 20 28 30 29 3b 20 | 20 20 20 20 20 20 20 20 |rn (0); | |
|00003ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003af0| 20 20 2f 2a 20 73 75 63 | 63 65 73 73 66 75 6c 20 | /* suc|cessful |
|00003b00| 6e 65 67 6f 74 69 61 74 | 69 6f 6e 73 20 2a 2f 0d |negotiat|ions */.|
|00003b10| 20 20 20 7d 0d 20 20 20 | 65 6c 73 65 20 69 66 20 | }. |else if |
|00003b20| 28 64 69 72 65 63 74 69 | 6f 6e 20 3d 3d 20 55 50 |(directi|on == UP|
|00003b30| 4c 4f 41 44 29 20 7b 0d | 09 09 74 65 78 74 75 70 |LOAD) {.|..textup|
|00003b40| 65 64 69 74 28 65 6d 64 | 70 2d 3e 66 74 6e 61 6d |edit(emd|p->ftnam|
|00003b50| 65 29 3b 09 09 2f 2a 20 | 63 6f 6e 76 65 72 74 20 |e);../* |convert |
|00003b60| 74 65 78 74 20 69 66 20 | 6e 65 63 65 73 73 61 72 |text if |necessar|
|00003b70| 79 20 2a 2f 0d 0d 09 20 | 20 6c 65 6e 67 74 68 20 |y */... | length |
|00003b80| 3d 20 30 3b 0d 20 20 20 | 20 20 20 69 66 20 28 28 |= 0;. | if ((|
|00003b90| 65 6d 64 70 2d 3e 66 74 | 31 20 3d 20 66 6f 70 65 |emdp->ft|1 = fope|
|00003ba0| 6e 20 28 65 6d 64 70 2d | 3e 66 74 6e 61 6d 65 2c |n (emdp-|>ftname,|
|00003bb0| 20 22 72 22 29 29 20 3d | 3d 20 30 29 20 20 20 20 | "r")) =|= 0) |
|00003bc0| 20 2f 2a 20 6f 70 65 6e | 20 66 61 69 6c 75 72 65 | /* open| failure|
|00003bd0| 20 2a 2f 0d 20 20 20 20 | 20 20 20 20 20 72 65 74 | */. | ret|
|00003be0| 75 72 6e 20 28 52 50 46 | 35 29 3b 0d 20 20 20 20 |urn (RPF|5);. |
|00003bf0| 20 20 69 66 20 28 66 73 | 65 65 6b 20 28 65 6d 64 | if (fs|eek (emd|
|00003c00| 70 2d 3e 66 74 31 2c 20 | 6c 65 6e 67 74 68 2c 20 |p->ft1, |length, |
|00003c10| 32 29 20 3d 3d 20 2d 31 | 29 20 20 20 20 20 20 20 |2) == -1|) |
|00003c20| 20 20 2f 2a 20 70 6f 73 | 69 74 69 6f 6e 20 61 74 | /* pos|ition at|
|00003c30| 20 65 6f 66 20 2a 2f 0d | 20 20 20 20 20 20 20 20 | eof */.| |
|00003c40| 20 72 65 74 75 72 6e 20 | 28 52 50 46 37 29 3b 0d | return |(RPF7);.|
|00003c50| 20 20 20 20 20 20 65 6d | 64 70 2d 3e 66 74 74 6f | em|dp->ftto|
|00003c60| 74 61 6c 20 3d 20 66 6f | 6f 2e 5f 6c 20 3d 20 66 |tal = fo|o._l = f|
|00003c70| 74 65 6c 6c 20 28 65 6d | 64 70 2d 3e 66 74 31 29 |tell (em|dp->ft1)|
|00003c80| 3b 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 67 |; | /* g|
|00003c90| 65 74 20 6c 65 6e 67 74 | 68 20 69 6e 20 62 79 74 |et lengt|h in byt|
|00003ca0| 65 73 20 2a 2f 0d 20 20 | 20 20 20 20 69 66 20 28 |es */. | if (|
|00003cb0| 66 73 65 65 6b 20 28 65 | 6d 64 70 2d 3e 66 74 31 |fseek (e|mdp->ft1|
|00003cc0| 2c 20 6c 65 6e 67 74 68 | 2c 20 30 29 20 3d 3d 20 |, length|, 0) == |
|00003cd0| 2d 31 29 20 20 20 20 20 | 20 20 20 20 2f 2a 20 72 |-1) | /* r|
|00003ce0| 65 70 6f 73 69 74 69 6f | 6e 20 61 74 20 74 6f 66 |epositio|n at tof|
|00003cf0| 20 2a 2f 0d 20 20 20 20 | 20 20 20 20 20 72 65 74 | */. | ret|
|00003d00| 75 72 6e 20 28 52 50 46 | 38 29 3b 0d 0d 20 20 20 |urn (RPF|8);.. |
|00003d10| 20 20 20 66 6f 72 20 28 | 69 20 3d 20 33 3b 20 69 | for (|i = 3; i|
|00003d20| 20 3e 3d 20 30 3b 20 69 | 2d 2d 29 20 20 20 20 20 | >= 0; i|--) |
|00003d30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00003d40| 63 6f 70 79 20 6c 65 6e | 67 74 68 20 74 6f 20 62 |copy len|gth to b|
|00003d50| 75 66 66 65 72 20 2a 2f | 0d 20 20 20 20 20 20 20 |uffer */|. |
|00003d60| 20 20 65 6d 64 70 2d 3e | 61 63 6b 5f 62 75 66 66 | emdp->|ack_buff|
|00003d70| 5b 69 20 2b 20 32 5d 20 | 3d 20 66 6f 6f 2e 5f 63 |[i + 2] |= foo._c|
|00003d80| 5b 69 5d 3b 09 09 09 09 | 09 2f 2a 20 50 4f 52 54 |[i];....|./* PORT|
|00003d90| 20 63 68 61 6e 67 65 64 | 20 66 6f 72 20 6d 61 63 | changed| for mac|
|00003da0| 2c 20 77 61 73 20 65 6d | 64 70 2d 3e 61 63 6b 5f |, was em|dp->ack_|
|00003db0| 62 75 66 66 5b 35 2d 69 | 5d 2c 20 6b 65 76 69 6e |buff[5-i|], kevin|
|00003dc0| 20 2a 2f 0d 20 20 20 20 | 20 20 66 74 5f 75 70 6c | */. | ft_upl|
|00003dd0| 6f 61 64 20 28 26 65 6d | 64 70 2d 3e 61 63 6b 5f |oad (&em|dp->ack_|
|00003de0| 62 75 66 66 5b 30 5d 2c | 20 36 29 3b 0d 20 20 20 |buff[0],| 6);. |
|00003df0| 20 20 20 65 6d 64 70 2d | 3e 73 65 6e 64 5f 70 6b | emdp-|>send_pk|
|00003e00| 74 2e 64 61 74 61 20 3d | 20 65 6d 64 70 2d 3e 78 |t.data =| emdp->x|
|00003e10| 66 65 72 31 5f 62 75 66 | 66 3b 20 20 20 20 20 20 |fer1_buf|f; |
|00003e20| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 73 77 69 74 | | /* swit|
|00003e30| 63 68 20 74 68 65 20 62 | 75 66 66 65 72 73 20 2a |ch the b|uffers *|
|00003e40| 2f 0d 20 20 20 20 20 20 | 65 6d 64 70 2d 3e 72 63 |/. |emdp->rc|
|00003e50| 76 5f 70 6b 74 2e 64 61 | 74 61 20 20 3d 20 65 6d |v_pkt.da|ta = em|
|00003e60| 64 70 2d 3e 78 66 65 72 | 32 5f 62 75 66 66 3b 0d |dp->xfer|2_buff;.|
|00003e70| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 28 30 29 | re|turn (0)|
|00003e80| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00003e90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ea0| 2f 2a 20 73 75 63 63 65 | 73 73 66 75 6c 20 6e 65 |/* succe|ssful ne|
|00003eb0| 67 6f 74 69 61 74 69 6f | 6e 73 20 2a 2f 0d 20 20 |gotiatio|ns */. |
|00003ec0| 20 7d 0d 20 20 20 65 6c | 73 65 20 20 20 20 20 20 | }. el|se |
|00003ed0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ee0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ef0| 20 20 20 2f 2a 20 65 72 | 72 6f 72 21 20 2a 2f 0d | /* er|ror! */.|
|00003f00| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 28 52 50 | re|turn (RP|
|00003f10| 46 39 29 3b 0d 7d 0d 0d | 0d 2f 2a 20 69 6e 69 74 |F9);.}..|./* init|
|00003f20| 69 61 6c 20 63 6f 6e 74 | 61 63 74 20 77 69 74 68 |ial cont|act with|
|00003f30| 20 68 6f 73 74 20 70 72 | 6f 67 72 61 6d 20 2a 2f | host pr|ogram */|
|00003f40| 0d 0d 66 74 69 6e 69 74 | 28 68 6f 73 74 76 65 72 |..ftinit|(hostver|
|00003f50| 73 2c 20 63 31 39 29 0d | 69 6e 74 20 68 6f 73 74 |s, c19).|int host|
|00003f60| 76 65 72 73 2c 20 63 31 | 39 3b 0d 7b 0d 20 20 20 |vers, c1|9;.{. |
|00003f70| 69 66 20 28 63 31 39 29 | 20 65 6d 64 70 2d 3e 66 |if (c19)| emdp->f|
|00003f80| 74 6c 65 6e 20 3d 20 43 | 31 39 46 54 4c 45 4e 3b |tlen = C|19FTLEN;|
|00003f90| 0d 20 20 20 20 20 20 65 | 6c 73 65 20 20 65 6d 64 |. e|lse emd|
|00003fa0| 70 2d 3e 66 74 6c 65 6e | 20 3d 20 54 4e 46 54 4c |p->ftlen| = TNFTL|
|00003fb0| 45 4e 3b 0d 0d 0d 09 69 | 66 20 28 6d 61 6b 65 66 |EN;....i|f (makef|
|00003fc0| 74 6d 65 6d 28 29 29 0d | 20 20 20 20 09 72 65 74 |tmem()).| .ret|
|00003fd0| 75 72 6e 28 45 53 43 5f | 43 48 41 52 29 3b 20 20 |urn(ESC_|CHAR); |
|00003fe0| 20 20 20 20 20 20 20 20 | 20 20 09 09 09 2f 2a 20 | | .../* |
|00003ff0| 74 65 6c 6c 20 68 6f 73 | 74 20 74 6f 20 63 6f 6e |tell hos|t to con|
|00004000| 74 69 6e 75 65 20 2a 2f | 0d 0d 20 20 20 65 6d 64 |tinue */|.. emd|
|00004010| 70 2d 3e 72 63 76 5f 70 | 6b 74 2e 64 61 74 61 20 |p->rcv_p|kt.data |
|00004020| 20 3d 20 65 6d 64 70 2d | 3e 78 66 65 72 31 5f 62 | = emdp-|>xfer1_b|
|00004030| 75 66 66 3b 20 20 20 20 | 09 2f 2a 20 62 75 66 66 |uff; |./* buff|
|00004040| 65 72 73 20 64 65 66 61 | 75 6c 74 20 2a 2f 0d 20 |ers defa|ult */. |
|00004050| 20 20 65 6d 64 70 2d 3e | 73 65 6e 64 5f 70 6b 74 | emdp->|send_pkt|
|00004060| 2e 64 61 74 61 20 3d 20 | 65 6d 64 70 2d 3e 78 66 |.data = |emdp->xf|
|00004070| 65 72 32 5f 62 75 66 66 | 3b 0d 0d 20 20 20 73 77 |er2_buff|;.. sw|
|00004080| 69 74 63 68 20 28 68 6f | 73 74 76 65 72 73 29 20 |itch (ho|stvers) |
|00004090| 7b 0d 20 20 20 20 20 20 | 63 61 73 65 20 32 30 3a |{. |case 20:|
|000040a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000040b0| 20 09 09 09 2f 2a 20 61 | 63 63 65 70 74 61 62 6c | .../* a|cceptabl|
|000040c0| 65 20 76 65 72 73 69 6f | 6e 20 6e 75 6d 62 65 72 |e versio|n number|
|000040d0| 73 20 2a 2f 0d 20 20 20 | 20 20 20 20 20 20 65 6d |s */. | em|
|000040e0| 64 70 2d 3e 66 74 63 6e | 74 20 20 20 20 20 3d 20 |dp->ftcn|t = |
|000040f0| 30 3b 20 20 20 20 20 20 | 20 09 2f 2a 20 69 6e 64 |0; | ./* ind|
|00004100| 65 78 20 69 6e 74 6f 20 | 44 4f 53 20 66 69 6c 65 |ex into |DOS file|
|00004110| 20 62 75 66 66 65 72 20 | 2a 2f 0d 20 20 20 20 20 | buffer |*/. |
|00004120| 20 20 20 20 65 6d 64 70 | 2d 3e 66 74 78 66 65 72 | emdp|->ftxfer|
|00004130| 65 64 20 20 3d 20 65 6d | 64 70 2d 3e 72 65 5f 78 |ed = em|dp->re_x|
|00004140| 6d 69 74 20 20 20 20 20 | 3d 20 30 3b 0d 20 20 20 |mit |= 0;. |
|00004150| 20 20 20 20 20 20 65 6d | 64 70 2d 3e 69 6e 70 75 | em|dp->inpu|
|00004160| 74 5f 63 6e 74 20 3d 20 | 65 6d 64 70 2d 3e 69 6e |t_cnt = |emdp->in|
|00004170| 70 75 74 5f 73 74 61 74 | 65 20 3d 20 30 3b 0d 20 |put_stat|e = 0;. |
|00004180| 20 20 20 20 20 20 20 20 | 65 6d 64 70 2d 3e 66 74 | |emdp->ft|
|00004190| 5f 66 6c 61 67 20 20 20 | 3d 20 30 3b 0d 20 20 20 |_flag |= 0;. |
|000041a0| 20 20 20 20 20 20 69 66 | 20 28 63 31 39 29 20 65 | if| (c19) e|
|000041b0| 6d 64 70 2d 3e 66 74 5f | 66 6c 61 67 20 7c 3d 20 |mdp->ft_|flag |= |
|000041c0| 43 31 39 3b 0d 20 20 20 | 20 20 20 20 20 20 72 65 |C19;. | re|
|000041d0| 74 75 72 6e 20 28 50 52 | 4f 47 56 45 52 53 29 3b |turn (PR|OGVERS);|
|000041e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|000041f0| 74 65 6c 6c 20 68 6f 73 | 74 20 74 6f 20 63 6f 6e |tell hos|t to con|
|00004200| 74 69 6e 75 65 20 2a 2f | 0d 20 20 20 20 20 20 20 |tinue */|. |
|00004210| 20 20 62 72 65 61 6b 3b | 0d 20 20 20 20 20 20 64 | break;|. d|
|00004220| 65 66 61 75 6c 74 3a 20 | 20 20 20 20 20 20 20 20 |efault: | |
|00004230| 20 20 20 20 20 20 20 2f | 2a 20 74 65 6c 6c 20 68 | /|* tell h|
|00004240| 6f 73 74 20 6e 6f 20 64 | 69 63 65 20 2a 2f 0d 20 |ost no d|ice */. |
|00004250| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 20 28 | |return (|
|00004260| 45 53 43 5f 43 48 41 52 | 29 3b 0d 20 20 20 20 20 |ESC_CHAR|);. |
|00004270| 20 7d 0d 20 20 20 7d 0d | 0d 2f 2a 20 73 65 6e 64 | }. }.|./* send|
|00004280| 20 61 20 70 61 63 6b 65 | 74 20 6f 66 20 6f 6e 65 | a packe|t of one|
|00004290| 20 62 79 74 65 20 61 63 | 6b 6e 6f 77 6c 65 64 67 | byte ac|knowledg|
|000042a0| 65 6d 65 6e 74 20 2a 2f | 0d 0d 66 74 61 63 6b 28 |ement */|..ftack(|
|000042b0| 78 29 0d 75 6e 73 69 67 | 6e 65 64 20 78 3b 0d 09 |x).unsig|ned x;..|
|000042c0| 7b 0d 20 20 20 65 6d 64 | 70 2d 3e 61 63 6b 5f 62 |{. emd|p->ack_b|
|000042d0| 75 66 66 5b 30 5d 20 3d | 20 78 3b 0d 20 20 20 66 |uff[0] =| x;. f|
|000042e0| 74 5f 75 70 6c 6f 61 64 | 20 28 26 65 6d 64 70 2d |t_upload| (&emdp-|
|000042f0| 3e 61 63 6b 5f 62 75 66 | 66 5b 30 5d 2c 20 31 29 |>ack_buf|f[0], 1)|
|00004300| 3b 0d 20 20 20 69 66 20 | 28 78 20 21 3d 20 52 45 |;. if |(x != RE|
|00004310| 4e 54 45 52 20 26 26 20 | 78 20 21 3d 20 52 45 58 |NTER && |x != REX|
|00004320| 4d 49 54 29 0d 20 20 20 | 20 20 20 65 6d 64 70 2d |MIT). | emdp-|
|00004330| 3e 66 74 5f 66 6c 61 67 | 20 7c 3d 20 44 4f 4e 45 |>ft_flag| |= DONE|
|00004340| 3b 0d 20 20 20 7d 0d 0d | 0d 0d 2f 2a 20 74 68 65 |;. }..|../* the|
|00004350| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 61 72 65 20 4d | followi|ng are M|
|00004360| 61 63 2d 73 70 65 63 69 | 66 69 63 20 72 6f 75 74 |ac-speci|fic rout|
|00004370| 69 6e 65 73 20 2a 2f 0d | 0d 2f 2a 20 64 72 61 77 |ines */.|./* draw|
|00004380| 20 61 20 63 69 72 63 6c | 65 20 66 6f 72 20 61 20 | a circl|e for a |
|00004390| 70 69 65 20 74 6f 20 73 | 68 6f 77 20 68 6f 77 20 |pie to s|how how |
|000043a0| 6d 75 63 68 20 6f 66 20 | 61 20 66 69 6c 65 20 68 |much of |a file h|
|000043b0| 61 73 20 62 65 65 6e 20 | 74 72 61 6e 73 66 65 72 |as been |transfer|
|000043c0| 72 65 64 20 2a 2f 0d 0d | 0d 61 72 63 69 6e 69 74 |red */..|.arcinit|
|000043d0| 28 66 69 6c 65 6e 61 6d | 65 29 0d 75 6e 73 69 67 |(filenam|e).unsig|
|000043e0| 6e 65 64 20 63 68 61 72 | 20 2a 20 66 69 6c 65 6e |ned char| * filen|
|000043f0| 61 6d 65 3b 0d 7b 0d 09 | 47 72 61 66 50 74 72 20 |ame;.{..|GrafPtr |
|00004400| 6f 6c 64 70 6f 72 74 3b | 0d 09 69 6e 74 20 6f 6c |oldport;|..int ol|
|00004410| 64 66 6f 6e 74 3b 0d 09 | 69 6e 74 20 6f 6c 64 73 |dfont;..|int olds|
|00004420| 69 7a 65 3b 0d 09 53 74 | 72 32 35 35 20 66 69 6c |ize;..St|r255 fil|
|00004430| 65 73 69 7a 65 3b 0d 0d | 09 47 65 74 50 6f 72 74 |esize;..|.GetPort|
|00004440| 28 26 6f 6c 64 70 6f 72 | 74 29 3b 0d 0d 09 65 6d |(&oldpor|t);...em|
|00004450| 64 70 2d 3e 61 72 63 64 | 65 67 20 3d 20 30 3b 0d |dp->arcd|eg = 0;.|
|00004460| 09 65 6d 64 70 2d 3e 61 | 72 63 72 65 63 74 2e 74 |.emdp->a|rcrect.t|
|00004470| 6f 70 20 3d 20 36 30 3b | 0d 09 65 6d 64 70 2d 3e |op = 60;|..emdp->|
|00004480| 61 72 63 72 65 63 74 2e | 6c 65 66 74 20 3d 20 31 |arcrect.|left = 1|
|00004490| 34 30 3b 0d 09 65 6d 64 | 70 2d 3e 61 72 63 72 65 |40;..emd|p->arcre|
|000044a0| 63 74 2e 62 6f 74 74 6f | 6d 20 3d 20 32 37 30 3b |ct.botto|m = 270;|
|000044b0| 0d 09 65 6d 64 70 2d 3e | 61 72 63 72 65 63 74 2e |..emdp->|arcrect.|
|000044c0| 72 69 67 68 74 20 3d 20 | 33 35 30 3b 0d 0d 09 65 |right = |350;...e|
|000044d0| 6d 64 70 2d 3e 74 65 78 | 74 72 65 63 74 2e 74 6f |mdp->tex|trect.to|
|000044e0| 70 20 3d 20 32 30 3b 0d | 09 65 6d 64 70 2d 3e 74 |p = 20;.|.emdp->t|
|000044f0| 65 78 74 72 65 63 74 2e | 6c 65 66 74 20 3d 20 32 |extrect.|left = 2|
|00004500| 30 3b 0d 09 65 6d 64 70 | 2d 3e 74 65 78 74 72 65 |0;..emdp|->textre|
|00004510| 63 74 2e 62 6f 74 74 6f | 6d 20 3d 20 38 30 3b 0d |ct.botto|m = 80;.|
|00004520| 09 65 6d 64 70 2d 3e 74 | 65 78 74 72 65 63 74 2e |.emdp->t|extrect.|
|00004530| 72 69 67 68 74 20 3d 20 | 33 37 30 3b 0d 09 0d 23 |right = |370;...#|
|00004540| 69 66 64 65 66 20 46 54 | 57 49 4e 44 0d 09 63 74 |ifdef FT|WIND..ct|
|00004550| 6f 70 28 66 69 6c 65 6e | 61 6d 65 29 3b 0d 09 61 |op(filen|ame);..a|
|00004560| 72 63 77 69 6e 64 20 3d | 20 4e 65 77 57 69 6e 64 |rcwind =| NewWind|
|00004570| 6f 77 28 28 50 74 72 29 | 20 4e 55 4c 4c 2c 20 26 |ow((Ptr)| NULL, &|
|00004580| 65 6d 64 70 2d 3e 61 72 | 63 72 65 63 74 2c 20 66 |emdp->ar|crect, f|
|00004590| 69 6c 65 6e 61 6d 65 2c | 20 28 42 6f 6f 6c 65 61 |ilename,| (Boolea|
|000045a0| 6e 29 20 54 52 55 45 2c | 20 30 2c 20 28 57 69 6e |n) TRUE,| 0, (Win|
|000045b0| 64 6f 77 50 74 72 29 20 | 2d 31 2c 20 28 42 6f 6f |dowPtr) |-1, (Boo|
|000045c0| 6c 65 61 6e 29 20 46 41 | 4c 53 45 2c 20 30 4c 29 |lean) FA|LSE, 0L)|
|000045d0| 3b 0d 09 70 74 6f 63 28 | 66 69 6c 65 6e 61 6d 65 |;..ptoc(|filename|
|000045e0| 29 3b 0d 09 53 65 74 50 | 6f 72 74 28 61 72 63 77 |);..SetP|ort(arcw|
|000045f0| 69 6e 64 29 3b 0d 0d 09 | 65 6d 64 70 2d 3e 61 72 |ind);...|emdp->ar|
|00004600| 63 72 65 63 74 2e 74 6f | 70 20 2d 3d 20 31 30 3b |crect.to|p -= 10;|
|00004610| 0d 09 65 6d 64 70 2d 3e | 61 72 63 72 65 63 74 2e |..emdp->|arcrect.|
|00004620| 6c 65 66 74 20 2d 3d 20 | 31 30 3b 0d 09 65 6d 64 |left -= |10;..emd|
|00004630| 70 2d 3e 61 72 63 72 65 | 63 74 2e 62 6f 74 74 6f |p->arcre|ct.botto|
|00004640| 6d 20 2d 3d 20 31 30 3b | 0d 09 65 6d 64 70 2d 3e |m -= 10;|..emdp->|
|00004650| 61 72 63 72 65 63 74 2e | 72 69 67 68 74 20 2d 3d |arcrect.|right -=|
|00004660| 20 31 30 3b 0d 23 65 6c | 73 65 0d 09 53 65 74 50 | 10;.#el|se..SetP|
|00004670| 6f 72 74 28 65 6d 77 69 | 6e 64 6f 77 29 3b 0d 23 |ort(emwi|ndow);.#|
|00004680| 65 6e 64 69 66 0d 0d 09 | 73 65 6c 72 65 73 65 74 |endif...|selreset|
|00004690| 28 65 6d 64 70 29 3b 09 | 09 09 09 09 09 2f 2a 20 |(emdp);.|...../* |
|000046a0| 72 65 73 65 74 20 73 65 | 6c 65 63 74 69 6f 6e 20 |reset se|lection |
|000046b0| 72 65 63 74 61 6e 67 6c | 65 20 2a 2f 0d 0d 09 2f |rectangl|e */.../|
|000046c0| 2a 20 64 72 61 77 20 74 | 68 65 20 66 69 6c 65 20 |* draw t|he file |
|000046d0| 6e 61 6d 65 20 2a 2f 0d | 09 6f 6c 64 66 6f 6e 74 |name */.|.oldfont|
|000046e0| 20 3d 20 74 68 65 50 6f | 72 74 2d 3e 74 78 46 6f | = thePo|rt->txFo|
|000046f0| 6e 74 3b 0d 09 6f 6c 64 | 73 69 7a 65 20 3d 20 74 |nt;..old|size = t|
|00004700| 68 65 50 6f 72 74 2d 3e | 74 78 53 69 7a 65 3b 0d |hePort->|txSize;.|
|00004710| 09 54 65 78 74 46 6f 6e | 74 28 30 29 3b 09 2f 2a |.TextFon|t(0);./*|
|00004720| 20 53 79 73 74 65 6d 20 | 46 6f 6e 74 20 2a 2f 0d | System |Font */.|
|00004730| 09 54 65 78 74 53 69 7a | 65 28 31 32 29 3b 0d 0d |.TextSiz|e(12);..|
|00004740| 09 43 6c 69 70 52 65 63 | 74 28 26 65 6d 64 70 2d |.ClipRec|t(&emdp-|
|00004750| 3e 74 65 78 74 72 65 63 | 74 29 3b 0d 09 4d 6f 76 |>textrec|t);..Mov|
|00004760| 65 54 6f 28 65 6d 64 70 | 2d 3e 74 65 78 74 72 65 |eTo(emdp|->textre|
|00004770| 63 74 2e 6c 65 66 74 20 | 2b 20 31 30 2c 20 65 6d |ct.left |+ 10, em|
|00004780| 64 70 2d 3e 74 65 78 74 | 72 65 63 74 2e 74 6f 70 |dp->text|rect.top|
|00004790| 20 2b 20 32 30 29 3b 0d | 09 44 72 61 77 54 65 78 | + 20);.|.DrawTex|
|000047a0| 74 28 66 69 6c 65 6e 61 | 6d 65 2c 20 30 2c 20 73 |t(filena|me, 0, s|
|000047b0| 74 72 6c 65 6e 28 66 69 | 6c 65 6e 61 6d 65 29 29 |trlen(fi|lename))|
|000047c0| 3b 0d 0d 09 4d 6f 76 65 | 54 6f 28 65 6d 64 70 2d |;...Move|To(emdp-|
|000047d0| 3e 74 65 78 74 72 65 63 | 74 2e 6c 65 66 74 20 2b |>textrec|t.left +|
|000047e0| 20 31 30 2c 20 65 6d 64 | 70 2d 3e 74 65 78 74 72 | 10, emd|p->textr|
|000047f0| 65 63 74 2e 74 6f 70 20 | 2b 20 33 35 29 3b 0d 09 |ect.top |+ 35);..|
|00004800| 4e 75 6d 54 6f 53 74 72 | 69 6e 67 28 65 6d 64 70 |NumToStr|ing(emdp|
|00004810| 2d 3e 66 74 74 6f 74 61 | 6c 2c 20 26 66 69 6c 65 |->fttota|l, &file|
|00004820| 73 69 7a 65 29 3b 0d 09 | 44 72 61 77 53 74 72 69 |size);..|DrawStri|
|00004830| 6e 67 28 26 66 69 6c 65 | 73 69 7a 65 29 3b 0d 09 |ng(&file|size);..|
|00004840| 44 72 61 77 53 74 72 69 | 6e 67 28 22 5c 50 20 62 |DrawStri|ng("\P b|
|00004850| 79 74 65 73 22 29 3b 0d | 0d 09 4d 6f 76 65 54 6f |ytes");.|..MoveTo|
|00004860| 28 65 6d 64 70 2d 3e 74 | 65 78 74 72 65 63 74 2e |(emdp->t|extrect.|
|00004870| 6c 65 66 74 20 2b 20 31 | 30 2c 20 65 6d 64 70 2d |left + 1|0, emdp-|
|00004880| 3e 74 65 78 74 72 65 63 | 74 2e 74 6f 70 20 2b 20 |>textrec|t.top + |
|00004890| 35 30 29 3b 0d 09 44 72 | 61 77 53 74 72 69 6e 67 |50);..Dr|awString|
|000048a0| 28 22 5c 50 55 73 65 20 | 50 41 31 20 74 6f 20 61 |("\PUse |PA1 to a|
|000048b0| 62 6f 72 74 22 29 3b 0d | 0d 09 43 6c 69 70 52 65 |bort");.|..ClipRe|
|000048c0| 63 74 28 26 65 6d 77 69 | 6e 64 6f 77 2d 3e 70 6f |ct(&emwi|ndow->po|
|000048d0| 72 74 52 65 63 74 29 3b | 0d 09 54 65 78 74 46 6f |rtRect);|..TextFo|
|000048e0| 6e 74 28 6f 6c 64 66 6f | 6e 74 29 3b 0d 09 54 65 |nt(oldfo|nt);..Te|
|000048f0| 78 74 53 69 7a 65 28 6f | 6c 64 73 69 7a 65 29 3b |xtSize(o|ldsize);|
|00004900| 0d 0d 09 46 72 61 6d 65 | 4f 76 61 6c 28 26 65 6d |...Frame|Oval(&em|
|00004910| 64 70 2d 3e 61 72 63 72 | 65 63 74 29 3b 0d 0d 09 |dp->arcr|ect);...|
|00004920| 53 65 74 50 6f 72 74 28 | 6f 6c 64 70 6f 72 74 29 |SetPort(|oldport)|
|00004930| 3b 0d 7d 0d 0d 0d 2f 2a | 20 65 72 61 73 65 20 74 |;.}.../*| erase t|
|00004940| 68 65 20 63 69 72 63 6c | 65 20 2a 2f 0d 0d 61 72 |he circl|e */..ar|
|00004950| 63 65 72 61 73 65 28 29 | 0d 7b 0d 23 69 66 64 65 |cerase()|.{.#ifde|
|00004960| 66 20 46 54 57 49 4e 44 | 0d 09 44 69 73 70 6f 73 |f FTWIND|..Dispos|
|00004970| 65 57 69 6e 64 6f 77 28 | 61 72 63 77 69 6e 64 29 |eWindow(|arcwind)|
|00004980| 3b 0d 23 65 6c 73 65 0d | 09 45 72 61 73 65 52 65 |;.#else.|.EraseRe|
|00004990| 63 74 28 26 65 6d 64 70 | 2d 3e 61 72 63 72 65 63 |ct(&emdp|->arcrec|
|000049a0| 74 29 3b 0d 09 45 72 61 | 73 65 52 65 63 74 28 26 |t);..Era|seRect(&|
|000049b0| 65 6d 64 70 2d 3e 74 65 | 78 74 72 65 63 74 29 3b |emdp->te|xtrect);|
|000049c0| 0d 23 65 6e 64 69 66 0d | 7d 0d 0d 0d 62 79 74 65 |.#endif.|}...byte|
|000049d0| 5f 6f 75 74 28 63 6e 74 | 2c 20 6c 69 6e 65 29 0d |_out(cnt|, line).|
|000049e0| 6c 6f 6e 67 20 63 6e 74 | 3b 0d 69 6e 74 20 20 6c |long cnt|;.int l|
|000049f0| 69 6e 65 3b 0d 7b 0d 09 | 69 6e 74 20 6e 65 77 61 |ine;.{..|int newa|
|00004a00| 72 63 3b 0d 09 66 6c 6f | 61 74 20 74 6f 74 61 6c |rc;..flo|at total|
|00004a10| 3b 0d 09 66 6c 6f 61 74 | 20 63 6f 75 6e 74 3b 0d |;..float| count;.|
|00004a20| 0d 09 69 66 20 28 6c 69 | 6e 65 20 3d 3d 20 31 33 |..if (li|ne == 13|
|00004a30| 29 0d 09 09 2f 2a 20 50 | 65 74 65 72 27 73 20 74 |).../* P|eter's t|
|00004a40| 6f 74 61 6c 20 63 6f 75 | 6e 74 2c 20 69 67 6e 6f |otal cou|nt, igno|
|00004a50| 72 65 20 69 74 20 2a 2f | 0d 09 09 72 65 74 75 72 |re it */|...retur|
|00004a60| 6e 28 2d 31 29 3b 0d 09 | 69 66 20 28 63 6e 74 20 |n(-1);..|if (cnt |
|00004a70| 3e 20 65 6d 64 70 2d 3e | 66 74 74 6f 74 61 6c 29 |> emdp->|fttotal)|
|00004a80| 0d 09 09 63 6f 75 6e 74 | 20 3d 20 65 6d 64 70 2d |...count| = emdp-|
|00004a90| 3e 66 74 74 6f 74 61 6c | 3b 0d 09 65 6c 73 65 0d |>fttotal|;..else.|
|00004aa0| 09 09 63 6f 75 6e 74 20 | 3d 20 63 6e 74 3b 0d 09 |..count |= cnt;..|
|00004ab0| 74 6f 74 61 6c 20 3d 20 | 65 6d 64 70 2d 3e 66 74 |total = |emdp->ft|
|00004ac0| 74 6f 74 61 6c 3b 0d 09 | 6e 65 77 61 72 63 20 3d |total;..|newarc =|
|00004ad0| 20 28 63 6f 75 6e 74 20 | 2f 20 65 6d 64 70 2d 3e | (count |/ emdp->|
|00004ae0| 66 74 74 6f 74 61 6c 29 | 20 2a 20 33 36 30 3b 0d |fttotal)| * 360;.|
|00004af0| 09 09 2f 2a 20 70 65 72 | 63 65 6e 74 61 67 65 20 |../* per|centage |
|00004b00| 6f 66 20 61 72 63 20 63 | 6f 6d 70 6c 65 74 65 64 |of arc c|ompleted|
|00004b10| 20 2a 2f 0d 09 69 66 20 | 28 6e 65 77 61 72 63 20 | */..if |(newarc |
|00004b20| 3e 20 65 6d 64 70 2d 3e | 61 72 63 64 65 67 29 20 |> emdp->|arcdeg) |
|00004b30| 7b 0d 09 09 47 72 61 66 | 50 74 72 20 6f 6c 64 70 |{...Graf|Ptr oldp|
|00004b40| 6f 72 74 3b 0d 0d 09 09 | 47 65 74 50 6f 72 74 28 |ort;....|GetPort(|
|00004b50| 26 6f 6c 64 70 6f 72 74 | 29 3b 0d 23 69 66 64 65 |&oldport|);.#ifde|
|00004b60| 66 20 46 54 57 49 4e 44 | 0d 09 09 53 65 74 50 6f |f FTWIND|...SetPo|
|00004b70| 72 74 28 61 72 63 77 69 | 6e 64 29 3b 0d 23 65 6c |rt(arcwi|nd);.#el|
|00004b80| 73 65 0d 09 09 53 65 74 | 50 6f 72 74 28 65 6d 77 |se...Set|Port(emw|
|00004b90| 69 6e 64 6f 77 29 3b 0d | 23 65 6e 64 69 66 0d 09 |indow);.|#endif..|
|00004ba0| 09 2f 2a 20 64 72 61 77 | 20 6d 6f 72 65 20 6f 66 |./* draw| more of|
|00004bb0| 20 74 68 65 20 77 65 64 | 67 65 20 2a 2f 0d 23 69 | the wed|ge */.#i|
|00004bc0| 66 64 65 66 20 49 4e 56 | 45 52 54 0d 09 09 49 6e |fdef INV|ERT...In|
|00004bd0| 76 65 72 74 41 72 63 28 | 26 65 6d 64 70 2d 3e 61 |vertArc(|&emdp->a|
|00004be0| 72 63 72 65 63 74 2c 20 | 65 6d 64 70 2d 3e 61 72 |rcrect, |emdp->ar|
|00004bf0| 63 64 65 67 2c 20 6e 65 | 77 61 72 63 20 2d 20 65 |cdeg, ne|warc - e|
|00004c00| 6d 64 70 2d 3e 61 72 63 | 64 65 67 29 3b 0d 23 65 |mdp->arc|deg);.#e|
|00004c10| 6c 73 65 0d 09 09 46 69 | 6c 6c 41 72 63 28 26 65 |lse...Fi|llArc(&e|
|00004c20| 6d 64 70 2d 3e 61 72 63 | 72 65 63 74 2c 20 65 6d |mdp->arc|rect, em|
|00004c30| 64 70 2d 3e 61 72 63 64 | 65 67 2c 20 6e 65 77 61 |dp->arcd|eg, newa|
|00004c40| 72 63 20 2d 20 65 6d 64 | 70 2d 3e 61 72 63 64 65 |rc - emd|p->arcde|
|00004c50| 67 2c 20 26 67 72 61 79 | 29 3b 0d 23 65 6e 64 69 |g, &gray|);.#endi|
|00004c60| 66 09 09 65 6d 64 70 2d | 3e 61 72 63 64 65 67 20 |f..emdp-|>arcdeg |
|00004c70| 3d 20 6e 65 77 61 72 63 | 3b 0d 09 09 53 65 74 50 |= newarc|;...SetP|
|00004c80| 6f 72 74 28 6f 6c 64 70 | 6f 72 74 29 3b 0d 09 7d |ort(oldp|ort);..}|
|00004c90| 0d 7d 0d 0d 61 72 63 72 | 65 66 72 65 73 68 28 29 |.}..arcr|efresh()|
|00004ca0| 0d 7b 0d 09 69 66 20 28 | 21 20 28 65 6d 64 70 2d |.{..if (|! (emdp-|
|00004cb0| 3e 65 76 65 6e 74 5f 72 | 65 67 20 26 20 54 46 54 |>event_r|eg & TFT|
|00004cc0| 50 5f 4f 4e 29 29 0d 09 | 09 72 65 74 75 72 6e 28 |P_ON))..|.return(|
|00004cd0| 2d 31 29 3b 0d 09 45 72 | 61 73 65 52 65 63 74 28 |-1);..Er|aseRect(|
|00004ce0| 26 65 6d 64 70 2d 3e 61 | 72 63 72 65 63 74 29 3b |&emdp->a|rcrect);|
|00004cf0| 0d 09 61 72 63 69 6e 69 | 74 28 65 6d 64 70 2d 3e |..arcini|t(emdp->|
|00004d00| 66 74 6e 61 6d 65 29 3b | 0d 0d 09 62 79 74 65 5f |ftname);|...byte_|
|00004d10| 6f 75 74 28 65 6d 64 70 | 2d 3e 66 74 78 66 65 72 |out(emdp|->ftxfer|
|00004d20| 65 64 2c 20 31 34 29 3b | 0d 7d 0d 0d 2f 2a 20 72 |ed, 14);|.}../* r|
|00004d30| 65 73 74 6f 72 65 20 4d | 61 63 69 6e 74 6f 73 68 |estore M|acintosh|
|00004d40| 20 70 72 6f 67 72 61 6d | 20 74 6f 20 74 65 72 6d | program| to term|
|00004d50| 69 6e 61 6c 20 65 6d 75 | 6c 61 74 69 6f 6e 20 73 |inal emu|lation s|
|00004d60| 74 61 74 65 20 2a 2f 0d | 0d 66 74 5f 64 6f 6e 65 |tate */.|.ft_done|
|00004d70| 28 29 20 0d 7b 20 20 20 | 20 20 20 20 20 0d 09 65 |() .{ | ..e|
|00004d80| 78 74 65 72 6e 20 69 6e | 74 20 6d 6f 64 65 3b 0d |xtern in|t mode;.|
|00004d90| 0d 09 65 6d 64 70 2d 3e | 65 76 65 6e 74 5f 72 65 |..emdp->|event_re|
|00004da0| 67 20 7c 3d 20 4c 49 4e | 45 5f 32 35 3b 0d 09 65 |g |= LIN|E_25;..e|
|00004db0| 6d 64 70 2d 3e 65 76 65 | 6e 74 5f 72 65 67 20 26 |mdp->eve|nt_reg &|
|00004dc0| 3d 20 7e 54 46 54 50 5f | 4f 4e 3b 0d 09 6d 73 65 |= ~TFTP_|ON;..mse|
|00004dd0| 74 73 65 6e 64 6d 28 54 | 52 55 45 29 3b 0d 09 6d |tsendm(T|RUE);..m|
|00004de0| 6f 64 65 20 3d 20 76 74 | 6d 6f 64 65 20 3d 20 30 |ode = vt|mode = 0|
|00004df0| 3b 0d 09 66 72 65 65 28 | 65 6d 64 70 2d 3e 66 74 |;..free(|emdp->ft|
|00004e00| 6e 61 6d 65 29 3b 0d 09 | 61 72 63 65 72 61 73 65 |name);..|arcerase|
|00004e10| 28 29 3b 0d 7d 0d 0d 2f | 2a 20 75 73 65 72 20 72 |();.}../|* user r|
|00004e20| 65 71 75 65 73 74 65 64 | 20 62 72 65 61 6b 20 76 |equested| break v|
|00004e30| 69 61 20 50 41 31 20 2a | 2f 0d 0d 66 74 5f 75 73 |ia PA1 *|/..ft_us|
|00004e40| 72 28 29 20 7b 0d 20 20 | 20 69 66 20 28 21 28 65 |r() {. | if (!(e|
|00004e50| 6d 64 70 2d 3e 66 74 5f | 66 6c 61 67 20 26 20 48 |mdp->ft_|flag & H|
|00004e60| 41 4c 54 29 29 20 20 20 | 20 20 20 20 20 20 65 6d |ALT)) | em|
|00004e70| 64 70 2d 3e 66 74 5f 66 | 6c 61 67 20 7c 3d 20 48 |dp->ft_f|lag |= H|
|00004e80| 41 4c 54 3b 0d 20 20 20 | 20 20 20 65 6c 73 65 20 |ALT;. | else |
|00004e90| 69 66 20 28 21 28 65 6d | 64 70 2d 3e 66 74 5f 66 |if (!(em|dp->ft_f|
|00004ea0| 6c 61 67 20 26 20 44 4f | 4e 45 29 29 20 65 6d 64 |lag & DO|NE)) emd|
|00004eb0| 70 2d 3e 66 74 5f 66 6c | 61 67 20 7c 3d 20 44 4f |p->ft_fl|ag |= DO|
|00004ec0| 4e 45 3b 0d 20 20 20 20 | 20 20 65 6c 73 65 20 66 |NE;. | else f|
|00004ed0| 74 5f 64 6f 6e 65 28 29 | 3b 0d 20 20 20 7d 0d 0d |t_done()|;. }..|
|00004ee0| 2f 2a 20 72 65 71 75 65 | 73 74 20 61 20 72 65 2d |/* reque|st a re-|
|00004ef0| 78 6d 69 73 73 69 6f 6e | 20 2a 2f 0d 0d 66 74 5f |xmission| */..ft_|
|00004f00| 72 65 71 28 29 20 7b 0d | 20 20 20 66 74 61 63 6b |req() {.| ftack|
|00004f10| 20 28 52 50 41 33 29 3b | 0d 20 20 20 62 79 74 65 | (RPA3);|. byte|
|00004f20| 5f 6f 75 74 20 28 2b 2b | 65 6d 64 70 2d 3e 72 65 |_out (++|emdp->re|
|00004f30| 5f 78 6d 69 74 2c 20 31 | 35 29 3b 0d 20 20 20 7d |_xmit, 1|5);. }|
|00004f40| 0d 0d 0d 2f 2a 20 70 6c | 61 63 65 20 63 68 61 72 |.../* pl|ace char|
|00004f50| 61 63 74 65 72 20 69 6e | 20 44 4f 53 20 62 75 66 |acter in| DOS buf|
|00004f60| 66 65 72 20 61 6e 64 20 | 77 72 69 74 65 20 77 68 |fer and |write wh|
|00004f70| 65 6e 20 66 75 6c 6c 20 | 2a 2f 0d 0d 66 74 5f 77 |en full |*/..ft_w|
|00004f80| 72 74 20 28 63 29 0d 63 | 68 61 72 20 63 3b 0d 20 |rt (c).c|har c;. |
|00004f90| 20 20 7b 0d 20 20 20 65 | 6d 64 70 2d 3e 66 74 62 | {. e|mdp->ftb|
|00004fa0| 75 66 66 5b 65 6d 64 70 | 2d 3e 66 74 63 6e 74 2b |uff[emdp|->ftcnt+|
|00004fb0| 2b 5d 20 3d 20 63 3b 0d | 20 20 20 69 66 20 28 65 |+] = c;.| if (e|
|00004fc0| 6d 64 70 2d 3e 66 74 63 | 6e 74 20 21 3d 20 44 4f |mdp->ftc|nt != DO|
|00004fd0| 53 4c 45 4e 29 20 72 65 | 74 75 72 6e 28 30 29 3b |SLEN) re|turn(0);|
|00004fe0| 0d 20 20 20 69 66 20 28 | 66 77 72 69 74 65 20 28 |. if (|fwrite (|
|00004ff0| 65 6d 64 70 2d 3e 66 74 | 62 75 66 66 2c 20 31 2c |emdp->ft|buff, 1,|
|00005000| 20 65 6d 64 70 2d 3e 66 | 74 63 6e 74 2c 20 65 6d | emdp->f|tcnt, em|
|00005010| 64 70 2d 3e 66 74 31 29 | 20 21 3d 20 65 6d 64 70 |dp->ft1)| != emdp|
|00005020| 2d 3e 66 74 63 6e 74 29 | 20 7b 0d 20 20 20 20 20 |->ftcnt)| {. |
|00005030| 20 66 74 61 63 6b 28 52 | 50 46 36 29 3b 0d 20 20 | ftack(R|PF6);. |
|00005040| 20 20 20 20 72 65 74 75 | 72 6e 28 31 29 3b 0d 20 | retu|rn(1);. |
|00005050| 20 20 20 20 20 7d 0d 20 | 20 20 65 6d 64 70 2d 3e | }. | emdp->|
|00005060| 66 74 63 6e 74 20 3d 20 | 30 3b 0d 20 20 20 72 65 |ftcnt = |0;. re|
|00005070| 74 75 72 6e 28 30 29 3b | 0d 20 20 20 7d 0d 0d 0d |turn(0);|. }...|
|00005080| 2f 2a 20 66 72 65 65 20 | 6d 65 6d 6f 72 79 20 75 |/* free |memory u|
|00005090| 73 65 64 20 62 79 20 74 | 72 61 6e 73 66 65 72 20 |sed by t|ransfer |
|000050a0| 62 75 66 66 65 72 73 20 | 2a 2f 0d 0d 66 74 72 65 |buffers |*/..ftre|
|000050b0| 63 6f 76 65 72 6d 65 6d | 28 74 77 70 29 0d 73 74 |covermem|(twp).st|
|000050c0| 72 75 63 74 20 77 69 6e | 64 73 20 2a 20 74 77 70 |ruct win|ds * twp|
|000050d0| 3b 0d 7b 0d 09 69 66 20 | 28 74 77 70 2d 3e 78 66 |;.{..if |(twp->xf|
|000050e0| 65 72 31 5f 62 75 66 66 | 29 0d 09 09 66 72 65 65 |er1_buff|)...free|
|000050f0| 28 74 77 70 2d 3e 78 66 | 65 72 31 5f 62 75 66 66 |(twp->xf|er1_buff|
|00005100| 29 3b 0d 09 69 66 20 28 | 74 77 70 2d 3e 78 66 65 |);..if (|twp->xfe|
|00005110| 72 32 5f 62 75 66 66 29 | 0d 09 09 66 72 65 65 28 |r2_buff)|...free(|
|00005120| 74 77 70 2d 3e 78 66 65 | 72 32 5f 62 75 66 66 29 |twp->xfe|r2_buff)|
|00005130| 3b 0d 09 69 66 20 28 74 | 77 70 2d 3e 74 62 75 66 |;..if (t|wp->tbuf|
|00005140| 66 29 0d 09 09 66 72 65 | 65 28 74 77 70 2d 3e 74 |f)...fre|e(twp->t|
|00005150| 62 75 66 66 29 3b 0d 09 | 69 66 20 28 74 77 70 2d |buff);..|if (twp-|
|00005160| 3e 66 74 33 32 37 30 5f | 62 75 66 66 29 0d 09 09 |>ft3270_|buff)...|
|00005170| 66 72 65 65 28 74 77 70 | 2d 3e 66 74 33 32 37 30 |free(twp|->ft3270|
|00005180| 5f 62 75 66 66 29 3b 0d | 09 69 66 20 28 74 77 70 |_buff);.|.if (twp|
|00005190| 2d 3e 66 74 62 75 66 66 | 29 0d 09 09 66 72 65 65 |->ftbuff|)...free|
|000051a0| 28 74 77 70 2d 3e 66 74 | 62 75 66 66 29 3b 0d 0d |(twp->ft|buff);..|
|000051b0| 09 74 77 70 2d 3e 78 66 | 65 72 31 5f 62 75 66 66 |.twp->xf|er1_buff|
|000051c0| 20 3d 20 4e 55 4c 4c 3b | 0d 09 74 77 70 2d 3e 78 | = NULL;|..twp->x|
|000051d0| 66 65 72 32 5f 62 75 66 | 66 20 3d 20 4e 55 4c 4c |fer2_buf|f = NULL|
|000051e0| 3b 0d 09 74 77 70 2d 3e | 74 62 75 66 66 20 3d 20 |;..twp->|tbuff = |
|000051f0| 4e 55 4c 4c 3b 0d 09 74 | 77 70 2d 3e 66 74 33 32 |NULL;..t|wp->ft32|
|00005200| 37 30 5f 62 75 66 66 20 | 3d 20 4e 55 4c 4c 3b 0d |70_buff |= NULL;.|
|00005210| 09 74 77 70 2d 3e 66 74 | 62 75 66 66 20 3d 20 4e |.twp->ft|buff = N|
|00005220| 55 4c 4c 3b 0d 7d 0d 0d | 0d 2f 2a 20 61 6c 6c 6f |ULL;.}..|./* allo|
|00005230| 63 61 74 65 20 6d 65 6d | 6f 72 79 20 66 6f 72 20 |cate mem|ory for |
|00005240| 61 20 66 69 6c 65 20 74 | 72 61 6e 73 66 65 72 2c |a file t|ransfer,|
|00005250| 20 72 65 74 75 72 6e 20 | 2d 31 20 69 66 20 77 65 | return |-1 if we|
|00005260| 20 63 61 6e 27 74 20 2a | 2f 0d 0d 6d 61 6b 65 66 | can't *|/..makef|
|00005270| 74 6d 65 6d 28 29 0d 7b | 0d 09 69 66 20 28 65 6d |tmem().{|..if (em|
|00005280| 64 70 2d 3e 78 66 65 72 | 31 5f 62 75 66 66 29 0d |dp->xfer|1_buff).|
|00005290| 09 09 72 65 74 75 72 6e | 28 30 29 3b 0d 09 09 0d |..return|(0);....|
|000052a0| 09 69 66 20 28 6d 65 6d | 74 65 73 74 28 28 6c 6f |.if (mem|test((lo|
|000052b0| 6e 67 29 20 28 4d 41 58 | 4c 45 4e 20 2b 20 54 42 |ng) (MAX|LEN + TB|
|000052c0| 55 46 4c 45 4e 20 2b 20 | 54 4e 46 54 4c 45 4e 20 |UFLEN + |TNFTLEN |
|000052d0| 2b 20 44 4f 53 4c 45 4e | 20 2b 20 54 4e 46 54 4c |+ DOSLEN| + TNFTL|
|000052e0| 45 4e 29 2c 20 22 74 6f | 20 70 65 72 66 6f 72 6d |EN), "to| perform|
|000052f0| 20 64 6f 77 6e 6c 6f 61 | 64 22 29 29 20 7b 0d 09 | downloa|d")) {..|
|00005300| 09 2f 2a 20 76 65 72 69 | 66 79 20 74 68 65 72 65 |./* veri|fy there|
|00005310| 27 73 20 65 6e 6f 75 67 | 68 20 6d 65 6d 6f 72 79 |'s enoug|h memory|
|00005320| 20 2a 2f 0d 09 09 65 6d | 64 70 2d 3e 78 66 65 72 | */...em|dp->xfer|
|00005330| 31 5f 62 75 66 66 20 3d | 20 6d 61 6c 6c 6f 63 28 |1_buff =| malloc(|
|00005340| 4d 41 58 4c 45 4e 29 3b | 0d 09 09 09 65 6d 64 70 |MAXLEN);|....emdp|
|00005350| 2d 3e 72 63 76 5f 70 6b | 74 2e 64 61 74 61 20 20 |->rcv_pk|t.data |
|00005360| 3d 20 65 6d 64 70 2d 3e | 78 66 65 72 31 5f 62 75 |= emdp->|xfer1_bu|
|00005370| 66 66 3b 20 20 20 20 20 | 2f 2a 20 62 75 66 66 65 |ff; |/* buffe|
|00005380| 72 73 20 64 65 66 61 75 | 6c 74 20 2a 2f 0d 09 09 |rs defau|lt */...|
|00005390| 65 6d 64 70 2d 3e 78 66 | 65 72 32 5f 62 75 66 66 |emdp->xf|er2_buff|
|000053a0| 20 3d 20 6d 61 6c 6c 6f | 63 28 32 30 29 3b 0d 09 | = mallo|c(20);..|
|000053b0| 09 09 65 6d 64 70 2d 3e | 73 65 6e 64 5f 70 6b 74 |..emdp->|send_pkt|
|000053c0| 2e 64 61 74 61 20 3d 20 | 65 6d 64 70 2d 3e 78 66 |.data = |emdp->xf|
|000053d0| 65 72 32 5f 62 75 66 66 | 3b 0d 09 09 65 6d 64 70 |er2_buff|;...emdp|
|000053e0| 2d 3e 74 62 75 66 66 20 | 3d 20 6d 61 6c 6c 6f 63 |->tbuff |= malloc|
|000053f0| 28 54 42 55 46 4c 45 4e | 29 3b 0d 09 09 65 6d 64 |(TBUFLEN|);...emd|
|00005400| 70 2d 3e 66 74 33 32 37 | 30 5f 62 75 66 66 20 3d |p->ft327|0_buff =|
|00005410| 20 6d 61 6c 6c 6f 63 28 | 54 4e 46 54 4c 45 4e 2b | malloc(|TNFTLEN+|
|00005420| 31 30 29 3b 0d 09 09 65 | 6d 64 70 2d 3e 66 74 62 |10);...e|mdp->ftb|
|00005430| 75 66 66 20 3d 20 6d 61 | 6c 6c 6f 63 28 44 4f 53 |uff = ma|lloc(DOS|
|00005440| 4c 45 4e 29 3b 0d 09 7d | 0d 09 69 66 20 28 20 20 |LEN);..}|..if ( |
|00005450| 20 65 6d 64 70 2d 3e 78 | 66 65 72 31 5f 62 75 66 | emdp->x|fer1_buf|
|00005460| 66 20 3d 3d 20 4e 55 4c | 4c 0d 09 09 7c 7c 20 65 |f == NUL|L...|| e|
|00005470| 6d 64 70 2d 3e 78 66 65 | 72 32 5f 62 75 66 66 20 |mdp->xfe|r2_buff |
|00005480| 3d 3d 20 4e 55 4c 4c 0d | 09 09 7c 7c 20 65 6d 64 |== NULL.|..|| emd|
|00005490| 70 2d 3e 74 62 75 66 66 | 20 09 09 3d 3d 20 4e 55 |p->tbuff| ..== NU|
|000054a0| 4c 4c 0d 09 09 7c 7c 20 | 65 6d 64 70 2d 3e 66 74 |LL...|| |emdp->ft|
|000054b0| 33 32 37 30 5f 62 75 66 | 66 20 3d 3d 20 4e 55 4c |3270_buf|f == NUL|
|000054c0| 4c 0d 09 09 7c 7c 20 65 | 6d 64 70 2d 3e 66 74 62 |L...|| e|mdp->ftb|
|000054d0| 75 66 66 20 09 3d 3d 20 | 4e 55 4c 4c 0d 09 29 20 |uff .== |NULL..) |
|000054e0| 7b 0d 09 09 66 74 72 65 | 63 6f 76 65 72 6d 65 6d |{...ftre|covermem|
|000054f0| 28 65 6d 64 70 29 3b 0d | 09 09 72 65 74 75 72 6e |(emdp);.|..return|
|00005500| 28 2d 31 29 3b 0d 09 7d | 0d 09 72 65 74 75 72 6e |(-1);..}|..return|
|00005510| 28 30 29 3b 0d 7d 0d 0d | 0d 2f 2a 20 66 74 33 32 |(0);.}..|./* ft32|
|00005520| 37 30 20 73 75 70 70 6f | 72 74 20 2a 2f 0d 0d 0d |70 suppo|rt */...|
|00005530| 2f 2a 20 68 65 61 64 65 | 72 20 66 6f 72 20 66 69 |/* heade|r for fi|
|00005540| 6c 65 20 74 72 61 6e 73 | 66 65 72 20 70 61 63 6b |le trans|fer pack|
|00005550| 65 74 73 20 2a 2f 0d 0d | 66 74 5f 68 65 61 64 65 |ets */..|ft_heade|
|00005560| 72 28 29 20 0d 7b 0d 09 | 69 66 20 28 65 6d 64 70 |r() .{..|if (emdp|
|00005570| 2d 3e 66 74 5f 66 6c 61 | 67 20 26 20 43 31 39 29 |->ft_fla|g & C19)|
|00005580| 20 7b 0d 09 09 2f 2a 20 | 6e 6f 20 68 65 61 64 65 | {.../* |no heade|
|00005590| 72 20 2a 2f 0d 09 09 3b | 0d 09 7d 0d 09 65 6c 73 |r */...;|..}..els|
|000055a0| 65 20 7b 0d 09 09 2f 2a | 20 33 32 37 30 20 63 75 |e {.../*| 3270 cu|
|000055b0| 72 72 65 6e 74 6c 79 20 | 61 6c 77 61 79 73 20 75 |rrently |always u|
|000055c0| 73 65 73 20 54 65 6c 6e | 65 74 20 61 6e 79 77 61 |ses Teln|et anywa|
|000055d0| 79 2e 2e 2e 20 2a 2f 0d | 09 09 0d 09 09 28 2a 65 |y... */.|.....(*e|
|000055e0| 6d 64 70 2d 3e 70 75 74 | 63 68 61 72 29 28 30 78 |mdp->put|char)(0x|
|000055f0| 65 38 29 3b 0d 09 09 28 | 2a 65 6d 64 70 2d 3e 70 |e8);...(|*emdp->p|
|00005600| 75 74 63 68 61 72 29 28 | 30 78 30 30 29 3b 0d 09 |utchar)(|0x00);..|
|00005610| 09 28 2a 65 6d 64 70 2d | 3e 70 75 74 63 68 61 72 |.(*emdp-|>putchar|
|00005620| 29 28 30 78 30 30 29 3b | 0d 09 7d 0d 7d 0d 0d 2f |)(0x00);|..}.}../|
|00005630| 2a 20 74 72 61 69 6c 65 | 72 20 66 6f 72 20 66 69 |* traile|r for fi|
|00005640| 6c 65 20 74 72 61 6e 73 | 66 65 72 20 70 61 63 6b |le trans|fer pack|
|00005650| 65 74 73 20 2a 2f 0d 0d | 66 74 5f 74 72 61 69 6c |ets */..|ft_trail|
|00005660| 65 72 28 29 20 0d 7b 0d | 09 69 66 20 28 65 6d 64 |er() .{.|.if (emd|
|00005670| 70 2d 3e 66 74 5f 66 6c | 61 67 20 26 20 43 31 39 |p->ft_fl|ag & C19|
|00005680| 29 20 7b 0d 09 09 28 2a | 65 6d 64 70 2d 3e 70 75 |) {...(*|emdp->pu|
|00005690| 74 63 68 61 72 29 28 43 | 52 29 3b 0d 09 09 28 2a |tchar)(C|R);...(*|
|000056a0| 65 6d 64 70 2d 3e 70 75 | 74 66 6c 75 73 68 29 28 |emdp->pu|tflush)(|
|000056b0| 29 3b 0d 09 7d 0d 09 65 | 6c 73 65 20 7b 0d 09 09 |);..}..e|lse {...|
|000056c0| 28 2a 65 6d 64 70 2d 3e | 70 75 74 63 68 61 72 29 |(*emdp->|putchar)|
|000056d0| 28 30 78 30 64 29 3b 0d | 09 09 28 2a 65 6d 64 70 |(0x0d);.|..(*emdp|
|000056e0| 2d 3e 70 75 74 63 68 61 | 72 29 28 54 4e 49 41 43 |->putcha|r)(TNIAC|
|000056f0| 29 3b 0d 09 09 28 2a 65 | 6d 64 70 2d 3e 70 75 74 |);...(*e|mdp->put|
|00005700| 63 68 61 72 29 28 30 78 | 65 66 29 3b 0d 09 09 28 |char)(0x|ef);...(|
|00005710| 2a 65 6d 64 70 2d 3e 70 | 75 74 66 6c 75 73 68 29 |*emdp->p|utflush)|
|00005720| 28 29 3b 0d 09 7d 0d 7d | 0d 0d 2f 2a 20 73 65 6e |();..}.}|../* sen|
|00005730| 64 20 61 20 62 6c 6f 63 | 6b 20 6f 66 20 64 61 74 |d a bloc|k of dat|
|00005740| 61 20 2a 2f 0d 09 09 09 | 0d 73 65 6e 64 5f 62 6c |a */....|.send_bl|
|00005750| 6f 63 6b 28 70 74 72 2c | 20 6c 65 6e 29 0d 75 6e |ock(ptr,| len).un|
|00005760| 73 69 67 6e 65 64 20 63 | 68 61 72 20 2a 70 74 72 |signed c|har *ptr|
|00005770| 3b 0d 69 6e 74 20 6c 65 | 6e 3b 0d 7b 0d 09 69 66 |;.int le|n;.{..if|
|00005780| 20 28 65 6d 64 70 2d 3e | 63 6f 6e 6e 74 79 70 65 | (emdp->|conntype|
|00005790| 20 3d 3d 20 43 4f 4e 4e | 5f 53 45 52 44 29 20 7b | == CONN|_SERD) {|
|000057a0| 0d 09 09 2f 2a 20 74 72 | 79 20 74 6f 20 66 69 78 |.../* tr|y to fix|
|000057b0| 20 68 61 6e 67 69 6e 67 | 20 70 72 6f 62 6c 65 6d | hanging| problem|
|000057c0| 73 20 77 69 74 68 20 53 | 79 74 65 6b 20 2a 2f 0d |s with S|ytek */.|
|000057d0| 09 09 73 65 72 73 65 6e | 64 63 6f 75 6e 74 28 70 |..sersen|dcount(p|
|000057e0| 74 72 2c 20 6c 65 6e 29 | 3b 0d 09 7d 0d 09 65 6c |tr, len)|;..}..el|
|000057f0| 73 65 20 7b 0d 09 09 6c | 65 6e 2b 2b 3b 0d 09 09 |se {...l|en++;...|
|00005800| 77 68 69 6c 65 20 28 2d | 2d 6c 65 6e 29 0d 09 09 |while (-|-len)...|
|00005810| 09 28 2a 65 6d 64 70 2d | 3e 70 75 74 63 68 61 72 |.(*emdp-|>putchar|
|00005820| 29 28 2a 70 74 72 2b 2b | 29 3b 0d 09 7d 0d 7d 0d |)(*ptr++|);..}.}.|
|00005830| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005880| 00 00 01 00 00 00 01 60 | 00 00 00 60 00 00 00 3e |.......`|...`...>|
|00005890| ef 60 3f 07 48 6e fe f2 | 4e ad 07 22 10 06 67 00 |.`?.Hn..|N.."..g.|
|000058a0| 00 a8 c0 2e ff ff 67 00 | 00 a0 4a 6d fc 9e 66 3c |......g.|..Jm..f<|
|000058b0| 04 66 74 2e 63 81 02 00 | 00 00 50 61 72 74 53 49 |.ft.c...|..PartSI|
|000058c0| 54 78 00 00 00 00 00 00 | 00 00 00 01 8b cb 00 00 |Tx......|........|
|000058d0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|000058e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000058f0| 00 00 a9 8d 3a 69 00 00 | 00 00 00 00 01 9e 04 5a |....:i..|.......Z|
|00005900| 41 ee fe f2 43 ee fd f2 | 70 3f 20 d9 51 c8 ff fc |A...C...|p? .Q...|
|00005910| 1d 7c 00 09 fe f9 10 2d | ed 7a 66 16 48 6d d9 0a |.|.....-|.zf.Hm..|
|00005920| 48 6e fe f2 42 67 4e ad | 09 72 48 6d d9 0a 4e ad |Hn..BgN.|.rHm..N.|
|00005930| 09 5a 4e ad 07 5a 4a ad | d2 54 67 0c 2f 2d d2 54 |.ZN..ZJ.|.Tg./-.T|
|00005940| 48 6e fe f2 4e ad 04 e2 | 52 47 52 6d fc 9e 60 00 |Hn..N...|RGRm..`.|
|00005950| fe 8c 10 05 67 36 08 2d | 00 02 ef 50 56 c1 c0 01 |....g6.-|...PV...|
|00005960| 67 2a 4a 6d f4 ee 6d 0a | 3f 3c 00 09 4e ad 07 1a |g*Jm..m.|?<..N...|
|00005970| 60 20 08 2d 00 06 ef 50 | 67 0a 3f 3c 00 0e 4e ad |` .-...P|g.?<..N.|
|00005980| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00005990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000059a0| 00 00 00 00 00 00 00 06 | 00 04 00 27 00 00 01 e1 |........|...'....|
|000059b0| 02 00 00 27 00 00 01 e1 | 02 00 a4 39 de 22 00 00 |...'....|...9."..|
|000059c0| 46 58 00 00 46 74 00 00 | 44 a0 01 00 00 00 00 10 |FX..Ft..|D.......|
|000059d0| 00 01 00 00 03 0f 00 00 | 08 07 05 63 31 39 66 74 |........|...c19ft|
|000059e0| 00 00 01 00 00 00 01 60 | 00 00 00 60 00 00 00 3e |.......`|...`...>|
|000059f0| 00 06 42 c4 04 c8 00 00 | 00 1c 00 3e 00 00 4d 50 |..B.....|...>..MP|
|00005a00| 53 52 00 01 00 0a 03 ed | ff ff 00 00 00 00 00 00 |SR......|........|
|00005a10| 00 00 03 ef ff ff 00 00 | 00 4c 00 07 7a 9c 00 00 |........|.L..z...|
|00005a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+